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) ステートメントは循環的な複雑さを増すことが多く、コードがすべてのケースで正しいことを行っていることを証明するのが難しくなります。
特定のアイテムのシーケンスを反復処理する際にブレークを使用することを検討している場合は、データを保持するために使用されるデータ構造を再検討することをお勧めします。Set や Map などを使用すると、より良い結果が得られる場合があります。