0

ある行から別の行にジャンプできる構文はありますか?

例:

System.out.println("line");
System.out.println("line2");
System.out.println("line3");
System.out.println("line4");

//goto line2 or something like that??
4

5 に答える 5

3

いいえ、goto声明はありませんが、いくつかの回避策があります。

do {
    //do stuff
    if (condition) break; //this will jump--+
    //do stuff                           // |
} while (false);                         // |
// here <-----------------------------------+

int id = 0;
while (true) {
    switch (id) {
        case 0:
            //do stuff
            if (condition) {id = 3; break;} //jumps to case 3:
        case 1:
            if (condition) {id = 1; break;} //jumps to case 1:
        // ...
    }
}
于 2013-05-17T12:14:09.633 に答える
1

Javaは意図的に goto をサポートしていません。これは、適切な条件構造を使用して制御フローを構築することを奨励 (強制) するためです。

あなたの例では、適切な方法は while ループです。

System.out.println("line");
while (true) {
    System.out.println("line2");
    System.out.println("line3");
    System.out.println("line4");
}

考えてみれば、goto なしで表現できないコード フロー パターンはありません (個人の根深い習慣から逸脱する必要があるかもしれません)。goto を使用するのは、コードの重複を避ける場合のみです。このようなケースに遭遇した場合は、必要な場所で呼び出すことができる別のメソッドにコードを再構築すると、よりクリーンなソリューションになります。

于 2013-05-17T14:08:58.747 に答える
1

たとえば、switch ステートメントを使用して、これを回避する方法で実現できます。

switch (lineNum) {
  case 1: System.out.println("line 1");
  case 2: System.out.println("line 2");
  case 3: System.out.println("line 3");
  case 4: System.out.println("line 4");
}

lineNum次に、適切な値があることを確認する必要があります。

do後方へのジャンプには、 orwhileループが必要です。

于 2013-05-17T12:11:28.167 に答える
0

正確に何を達成したいですか?http://geekycoder.wordpress.com/2008/06/25/tipjava-using-block-label-as-goto/のようにラベルを使用できますが、とにかく goto のようなステートメントを使用すると、スパゲッティ コードにつながる可能性があります

于 2013-05-17T12:12:55.843 に答える
0

予約済みのキーワードですが、Java には goto はありません。

goto は不適切なプログラミング構造と見なされているため、Java から除外されました。

于 2013-05-17T12:08:38.183 に答える