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