问题:break只能跳出一层循环,如下:
while(true){
for (int i = 1; i <= s; i++) {
t2++;
s2 += v2;
if (s2 >= l) {
System.out.println("T" + "\n" + t2);
break; //if不算在内,该break只能跳出for循环,而不能跳出while循环
}
}
}
解决方法:可以使用语句标记的方法跳出多层循环,如下:
OUT: //使用标记语句OUT,可以写其他语句,如a: b:等等
while(true){
for (int i = 1; i <= s; i++) {
t2++;
s2 += v2;
if (s2 >= l) {
System.out.println("T" + "\n" + t2);
break OUT; //直接跳出while语句
}
}
或者 不使用 语句标记 如下
boolean broken = false; // 为了提高效率而在循环之外宣布
for (Type type : types) {
for (Type t : types2) {
if (some condition) {
broken = true;
break;
}
}
if (broken) {
break;
}
}
Comments | NOTHING