1

Java で C# の goto ステートメントを採用する方法はありますか?

4

7 に答える 7

4

Java の goto コンセプトに直接相当するものはありません。break と continue を使用できます

break と continue を含むラベル付きステートメントについては、こちらを参照してください。

于 2012-10-08T13:08:43.133 に答える
3

Java には goto ステートメントはありません。

C や C++ とは異なり、Java プログラミング言語には goto ステートメントがありません。

最も近いのはcontinueandbreakステートメントで、ラベルと組み合わせて使用​​してループを終了できます。

于 2012-10-08T13:09:21.270 に答える
2

正確に同等のものはありませんが、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 のチュートリアルの例も参照してください。

于 2012-10-08T13:09:26.590 に答える
1

Java でのラベル ステートメントの使用について読んでください。

質問

フロー制御

于 2012-10-08T13:10:29.117 に答える
1

break と continue を含むラベル付きステートメント。

于 2012-10-08T13:09:05.400 に答える
1

break名前付きブロックがあり、ラベル付きステートメントを使用できます。

loop: 
  for (int i = 0; i < 10; ++i)
      break loop; 

または

label: {
       if(something) 
          break label;
} 

詳細については、分岐ステートメントを参照してください。しかし、それ以外には、実際の goto ステートメントはありません。

于 2012-10-08T13:12:06.480 に答える
-3

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");
        }
    }
}

同様の質問がここで回答されました

于 2012-10-08T13:08:48.703 に答える