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) 문은 종종 순환 적 복잡성 을 증가시켜 코드가 모든 경우에 올바른 작업을 수행하고 있음을 증명하기 어렵게 만든다고 말할 것입니다.
특정 항목에 대해 시퀀스를 반복하는 동안 중단 사용을 고려하고 있다면 데이터를 보관하는 데 사용되는 데이터 구조를 재고 할 수 있습니다. 세트 또는지도와 같은 것을 사용하면 더 나은 결과를 얻을 수 있습니다.
break
같은 리그에서goto
:)