ฉันเห็นคำหลักนี้เป็นครั้งแรกและฉันก็สงสัยว่ามีคนอธิบายให้ฉันได้ไหมว่ามันทำอะไร
- อะไรคือสิ่งที่
continue
คำหลัก? - มันทำงานยังไง?
- จะใช้เมื่อไหร่?
ฉันเห็นคำหลักนี้เป็นครั้งแรกและฉันก็สงสัยว่ามีคนอธิบายให้ฉันได้ไหมว่ามันทำอะไร
continue
คำหลัก?คำตอบ:
continue
คำสั่งโดยไม่ต้องฉลากจะดำเนินการอีกครั้งจากสภาพด้านในสุดwhile
หรือdo
ห่วงและจากการแสดงออกของการปรับปรุงด้านในสุดของfor
ห่วง มันมักจะใช้เพื่อยุติการประมวลผลของลูปก่อนและจึงหลีกเลี่ยงif
คำสั่งที่ซ้อนกันลึก ในตัวอย่างต่อไปนี้continue
จะได้รับบรรทัดถัดไปโดยไม่ต้องประมวลผลคำสั่งต่อไปนี้ในวง
while (getNext(line)) {
if (line.isEmpty() || line.isComment())
continue;
// More code here
}
ด้วยเลเบลcontinue
จะเรียกใช้งานซ้ำจากลูปที่มีเลเบลที่สอดคล้องกันแทนที่จะเป็นลูปด้านในสุด สิ่งนี้สามารถใช้เพื่อหลบหนีลูปที่ซ้อนกันอย่างลึกล้ำหรือเพื่อความชัดเจน
บางครั้งcontinue
ก็ใช้เป็นตัวยึดตำแหน่งเพื่อทำให้ร่างกายลูปที่ว่างเปล่าชัดเจนยิ่งขึ้น
for (count = 0; foo.moreData(); count++)
continue;
คำสั่งเดียวกันโดยไม่มีป้ายกำกับยังมีอยู่ใน C และ C ++ เทียบเท่าใน Perl next
คือ
ประเภทของการควบคุมการไหลนี้ไม่ได้แนะนำ แต่ถ้าคุณจึงเลือกคุณยังสามารถใช้continue
ในการจำลองรูปแบบ goto
จำกัด ในตัวอย่างต่อไปนี้continue
จะดำเนินการfor (;;)
ลูปที่ว่างเปล่าอีกครั้ง
aLoopName: for (;;) {
// ...
while (someCondition)
// ...
if (otherCondition)
continue aLoopName;
continue
goto
เป็นชนิดเช่น คุณคุ้นเคยbreak
หรือไม่ มันง่ายที่จะคิดเกี่ยวกับพวกเขาในทางตรงกันข้าม:
break
ยุติการวนซ้ำ (ข้ามไปยังรหัสด้านล่าง)
continue
ยุติการประมวลผลส่วนที่เหลือของรหัสภายในลูปสำหรับการวนซ้ำปัจจุบัน แต่วนซ้ำต่อไป
ลองดูตัวอย่าง:
int sum = 0;
for(int i = 1; i <= 100 ; i++){
if(i % 2 == 0)
continue;
sum += i;
}
นี่จะได้ผลรวมของเลขคี่เท่านั้นตั้งแต่ 1 ถึง 100
หากคุณคิดว่าของร่างกายของวงเป็นงานย่อยที่เป็นประเภทเช่นcontinue
return
คำหลักเดียวกันมีอยู่ใน C และทำหน้าที่จุดประสงค์เดียวกัน นี่คือตัวอย่างที่วางแผนไว้:
for(int i=0; i < 10; ++i) {
if (i % 2 == 0) {
continue;
}
System.out.println(i);
}
สิ่งนี้จะพิมพ์เฉพาะเลขคี่
โดยทั่วไปฉันเห็นcontinue
(และbreak
) เป็นคำเตือนว่ารหัสอาจใช้การปรับโครงสร้างบางอย่างโดยเฉพาะอย่างยิ่งหากการประกาศwhile
หรือการfor
วนซ้ำไม่ปรากฏในทันที เช่นเดียวกับสำหรับreturn
ในระหว่างวิธี แต่ด้วยเหตุผลที่แตกต่างกันเล็กน้อย
ตามที่คนอื่นพูดไปแล้วให้continue
เดินไปที่การวนซ้ำครั้งต่อไปในขณะที่break
ย้ายออกจากลูปการปิดล้อม
สิ่งเหล่านี้สามารถเป็น timebombs การบำรุงรักษาเนื่องจากไม่มีการเชื่อมโยงทันทีระหว่างcontinue
/ break
และการวนซ้ำมันจะดำเนินการต่อ / แตกอื่นนอกเหนือจากบริบท; เพิ่มวงด้านในหรือย้าย "ความกล้า" ของวงเข้าไปในวิธีการแยกต่างหากและคุณมีผลที่ซ่อนอยู่ของcontinue
/ break
ล้มเหลว
IMHO เป็นการดีที่สุดที่จะใช้พวกเขาเป็นวิธีการสุดท้ายแล้วเพื่อให้แน่ใจว่าการใช้งานของพวกเขาถูกจัดกลุ่มเข้าด้วยกันอย่างแน่นหนาที่จุดเริ่มต้นหรือจุดสิ้นสุดของการวนรอบเพื่อให้นักพัฒนาคนต่อไปสามารถเห็น "ขอบเขต" .
continue
, break
และreturn
(นอกเหนือจาก One True Return ในตอนท้ายของวิธีการของคุณ) อยู่ในหมวดหมู่ทั่วไปของ "GOTO ที่ซ่อนอยู่" พวกเขาวางการควบคุมวงและฟังก์ชั่นในสถานที่ที่ไม่คาดคิดซึ่งในที่สุดก็ทำให้เกิดข้อบกพร่อง
"ดำเนินการต่อ" ใน Java หมายถึงไปที่จุดสิ้นสุดของวงปัจจุบันหมายถึง: หากคอมไพเลอร์เห็นดำเนินการต่อในวงมันจะไปที่การทำซ้ำต่อไป
ตัวอย่าง: นี่คือรหัสสำหรับพิมพ์ตัวเลขคี่จาก 1 ถึง 10
คอมไพเลอร์จะเพิกเฉยต่อรหัสการพิมพ์เมื่อใดก็ตามที่เห็นว่ามันยังคงดำเนินต่อไปในการทำซ้ำครั้งถัดไป
for (int i = 0; i < 10; i++) {
if (i%2 == 0) continue;
System.out.println(i+"");
}
ดังที่ได้กล่าวแล้วcontinue
จะข้ามการประมวลผลรหัสด้านล่างและจนกว่าจะสิ้นสุดของวง จากนั้นคุณจะถูกย้ายไปที่เงื่อนไขของลูปและเรียกใช้การวนซ้ำถัดไปหากเงื่อนไขนี้ยังคงมีอยู่ (หรือหากมีแฟล็กไปยังเงื่อนไขของลูปที่แสดง)
จะต้องมีการเน้นว่าในกรณีที่do - while
คุณถูกย้ายไปยังสภาพที่ด้านล่างหลังจากที่continue
ไม่ได้ที่จุดเริ่มต้นของวง
นี่คือสาเหตุที่ผู้คนจำนวนมากไม่สามารถตอบคำถามได้อย่างถูกต้องว่าจะสร้างรหัสต่อไปนี้อย่างไร
Random r = new Random();
Set<Integer> aSet= new HashSet<Integer>();
int anInt;
do {
anInt = r.nextInt(10);
if (anInt % 2 == 0)
continue;
System.out.println(anInt);
} while (aSet.add(anInt));
System.out.println(aSet);
* ถ้าคำตอบของคุณคือaSet
จะมีตัวเลขคี่เพียง 100% ... คุณผิด!
ดำเนินการต่อเป็นคำหลักใน Java และใช้เพื่อข้ามการวนซ้ำปัจจุบัน
สมมติว่าคุณต้องการพิมพ์ตัวเลขคี่ทั้งหมดตั้งแต่ 1 ถึง 100
public class Main {
public static void main(String args[]) {
//Program to print all odd numbers from 1 to 100
for(int i=1 ; i<=100 ; i++) {
if(i % 2 == 0) {
continue;
}
System.out.println(i);
}
}
}
ดำเนินการคำสั่งต่อไปในโปรแกรมข้างต้นเพียงข้ามการทำซ้ำเมื่อฉันเป็นคู่และพิมพ์ค่าของฉันเมื่อมันเป็นคี่
คำสั่งดำเนินการต่อจะนำคุณออกจากลูปโดยไม่ต้องดำเนินการคำสั่งที่เหลืออยู่ในลูปและทริกเกอร์การวนซ้ำครั้งถัดไป
พิจารณาเงื่อนไข If Else คำสั่ง Continue ดำเนินการสิ่งที่มีอยู่ในเงื่อนไขและออกจากเงื่อนไขเช่นข้ามไปที่การทำซ้ำหรือเงื่อนไขต่อไป แต่ตัวแบ่งออกจากวง พิจารณาโปรแกรมต่อไปนี้ '
public class ContinueBreak {
public static void main(String[] args) {
String[] table={"aa","bb","cc","dd"};
for(String ss:table){
if("bb".equals(ss)){
continue;
}
System.out.println(ss);
if("cc".equals(ss)){
break;
}
}
System.out.println("Out of the loop.");
}
}
จะพิมพ์: aa cc ออกจากลูป
ถ้าคุณใช้แบ่งในสถานที่ของการดำเนินการต่อไป (ถ้าหลังจาก.) มันก็จะพิมพ์ AA และออกจากวง
หากเงื่อนไขเป็น "bb" เท่ากับ ss เป็นไปตามเงื่อนไข: สำหรับดำเนินการต่อ: ไปที่การทำซ้ำครั้งถัดไปเช่น "cc" .equals (ss) สำหรับการหยุดพัก: มันมาจากลูปและพิมพ์ "ออกจากลูป"
break
ฉันมาสายไปงานเลี้ยง แต่ ...
เป็นมูลค่าการกล่าวขวัญว่าcontinue
มีประโยชน์สำหรับลูปเปล่าที่งานทั้งหมดทำในนิพจน์เงื่อนไขที่ควบคุมลูป ตัวอย่างเช่น:
while ((buffer[i++] = readChar()) >= 0)
continue;
ในกรณีนี้งานทั้งหมดของการอ่านตัวอักษรและต่อท้ายbuffer
เสร็จแล้วจะทำในนิพจน์ที่ควบคุมwhile
ลูป continue
งบทำหน้าที่เป็นตัวบ่งชี้ที่ภาพที่วงไม่จำเป็นต้องร่างกาย
มันชัดเจนกว่าที่เทียบเท่าเล็กน้อย:
while (...)
{ }
และสไตล์การเขียนโค้ดที่ดีกว่าและปลอดภัยกว่าการใช้คำสั่งเปล่าเช่น:
while (...)
;
while
กลายเป็นร่างของwhile
ประโยคและที่จะไม่เห็นภาพ ชัดเจนcontinue
ชัดเจนและบ่งบอกถึงเจตนาที่คำสั่งที่ว่างเปล่าไม่ได้
โดยทั่วไปใน java, ดำเนินการต่อคือคำสั่ง ดังนั้นโดยปกติแล้ว statement จะใช้กับลูปเพื่อข้ามการวนซ้ำปัจจุบัน
สำหรับวิธีการและเวลาที่ใช้ในจาวาอ้างอิงลิงค์ด้านล่าง มันมีคำอธิบายพร้อมตัวอย่าง
https://www.flowerbrackets.com/continue-java-example/
หวังว่ามันจะช่วย !!
continue
ต้องอยู่ในลูปมิฉะนั้นจะแสดงให้เห็นข้อผิดพลาดด้านล่าง:
ดำเนินการต่อนอกวง
คำสั่ง continue ใช้ในโครงสร้างการควบคุมลูปเมื่อคุณต้องการข้ามไปยังการวนซ้ำครั้งถัดไปของลูปทันที
มันสามารถใช้กับวงหรือในขณะที่วง คำสั่ง Java Continue ใช้เพื่อดำเนินการวนรอบต่อไป มันจะดำเนินการต่อการไหลปัจจุบันของโปรแกรมและข้ามรหัสที่เหลืออยู่ที่เงื่อนไขที่ระบุ
ในกรณีที่มีการวนรอบด้านในจะเป็นการวนรอบต่อไปเท่านั้น
เราสามารถใช้คำสั่ง Java continue ในลูปทุกประเภทเช่น for loop, loop และ do-while loop
ตัวอย่างเช่น
class Example{
public static void main(String args[]){
System.out.println("Start");
for(int i=0; i<10; i++){
if(i==5){continue;}
System.out.println("i : "+i);
}
System.out.println("End.");
}
}
เอาท์พุท:
Start
i : 0
i : 1
i : 2
i : 3
i : 4
i : 6
i : 7
i : 8
i : 9
End.
[หมายเลข 5 คือข้าม]