ฉันเห็นคำหลักนี้เป็นครั้งแรกและฉันก็สงสัยว่ามีคนอธิบายให้ฉันได้ไหมว่ามันทำอะไร
- อะไรคือสิ่งที่
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;
continuegotoเป็นชนิดเช่น คุณคุ้นเคย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 คือข้าม]