Javafor
のループ内にループがネストされている構造があります。ループとループの両方を終了するようにステートメントwhile
を呼び出す方法はありますか?break
for
while
11358 次
5 に答える
14
これには、「ラベル付き」ブレークを使用できます。
class BreakWithLabelDemo {
public static void main(String[] args) {
int[][] arrayOfInts = { { 32, 87, 3, 589 },
{ 12, 1076, 2000, 8 },
{ 622, 127, 77, 955 }
};
int searchfor = 12;
int i;
int j = 0;
boolean foundIt = false;
search:
for (i = 0; i < arrayOfInts.length; i++) {
for (j = 0; j < arrayOfInts[i].length; j++) {
if (arrayOfInts[i][j] == searchfor) {
foundIt = true;
break search;
}
}
}
if (foundIt) {
System.out.println("Found " + searchfor +
" at " + i + ", " + j);
} else {
System.out.println(searchfor
+ " not in the array");
}
}
}
取得元:http : //download.oracle.com/javase/tutorial/java/nutsandbolts/branch.html
于 2011-04-14T21:45:23.970 に答える
3
あなたは3つの方法でそれを行うことができます:
- メソッド内にwhileループとforループを設定してから、
return
- forループを中断し、whileループで終了するフラグを設定できます
- ラベルを使用する(以下の例)
これは、3番目の方法(ラベル付き)の例です。
public void someMethod() {
// ...
search:
for (i = 0; i < arrayOfInts.length; i++) {
for (j = 0; j < arrayOfInts[i].length; j++) {
if (arrayOfInts[i][j] == searchfor) {
foundIt = true;
break search;
}
}
}
}
このサイトの例
私の意見では、1番目と2番目のソリューションはエレガントです。一部のプログラマーはラベルが好きではありません。
于 2011-04-14T21:44:00.553 に答える
2
例えば:
out:
while(someCondition) {
for(int i = 0; i < someInteger; i++) {
if (someOtherCondition)
break out;
}
}
于 2011-04-14T21:44:15.010 に答える
1
ループを関数呼び出しの中に入れて、関数から戻りますか?
于 2011-04-14T21:41:41.227 に答える
1
外側のループにラベルを使用できるはずです(この場合)
だから何かのような
label:
While()
{
for()
{
break label;
}
}
于 2011-04-14T21:44:15.877 に答える