ไม่มีอะไรผิดปกติในการใช้คำสั่ง break แต่ลูปที่ซ้อนกันอาจทำให้สับสนได้ เพื่อปรับปรุงความสามารถในการอ่านภาษาต่างๆ ( อย่างน้อยก็ Java ) สนับสนุนการทำลายป้ายกำกับซึ่งจะช่วยเพิ่มความสามารถในการอ่านได้มาก
int[] iArray = new int[]{0,1,2,3,4,5,6,7,8,9};
int[] jArray = new int[]{0,1,2,3,4,5,6,7,8,9};
// label for i loop
iLoop: for (int i = 0; i < iArray.length; i++) {
// label for j loop
jLoop: for (int j = 0; j < jArray.length; j++) {
if(iArray[i] < jArray[j]){
// break i and j loops
break iLoop;
} else if (iArray[i] > jArray[j]){
// breaks only j loop
break jLoop;
} else {
// unclear which loop is ending
// (breaks only the j loop)
break;
}
}
}
ฉันจะบอกว่าคำสั่ง break (และ return) มักเพิ่มความซับซ้อนของวัฏจักรซึ่งทำให้ยากต่อการพิสูจน์ว่า code กำลังทำสิ่งที่ถูกต้องในทุกกรณี
หากคุณกำลังพิจารณาที่จะใช้ช่วงพักขณะที่ทำซ้ำตามลำดับสำหรับบางรายการคุณอาจต้องการพิจารณาโครงสร้างข้อมูลที่ใช้เก็บข้อมูลของคุณใหม่ การใช้บางอย่างเช่น Set หรือ Map อาจให้ผลลัพธ์ที่ดีกว่า
break
อยู่ในลีกเดียวกับgoto
:)