Java で C# の goto ステートメントを採用する方法はありますか?
7 に答える
Java の goto コンセプトに直接相当するものはありません。break と continue を使用できます。
break と continue を含むラベル付きステートメントについては、こちらを参照してください。
Java には goto ステートメントはありません。
C や C++ とは異なり、Java プログラミング言語には goto ステートメントがありません。
最も近いのはcontinue
andbreak
ステートメントで、ラベルと組み合わせて使用してループを終了できます。
正確に同等のものはありませんが、Java は最も正当なユース ケース、つまりループ内から何らかのラベルに移動したい場合に対処しました。この場合、 break を使用できます。
outerLoop:
for (int i = 0; i < n; i++) {
t = A[[i]][j];
for (int z = 0; z < l; z++) {
if (arrays[z].contains(t)) {
continue outerLoop;
}
}
}
Oracle のチュートリアルの例も参照してください。
break と continue を含むラベル付きステートメント。
break
名前付きブロックがあり、ラベル付きステートメントを使用できます。
loop:
for (int i = 0; i < 10; ++i)
break loop;
または
label: {
if(something)
break label;
}
詳細については、分岐ステートメントを参照してください。しかし、それ以外には、実際の goto ステートメントはありません。
JAVA で C# の goto ステートメントを採用する方法はありますか?
Java の goto ステートメントは予約済みのキーワードです。ただし、どのような方法でも実装されていません。おそらく、Java エンジンに組み込む計画があったのでしょう。
あなたの質問に答えるために。goto と非常によく似た動作をするラベル付き breakを使用できます。
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");
}
}
}
同様の質問がここで回答されました