1

特定の条件(xとyの両方がゼロに等しい場合)で、配列から乱数を生成するこのコードがあります。コントロールをラベルにジャンプさせたい。ただし、コントロールはどのような状態でもラベルにジャンプすることはありません。私がそれを正しく行っているかどうかを知りたかったのですか?

int[] arr = {0, 1, 2};    
Random rn = new Random();
label: {
    //some code
    if (x != 0 && y !=0) {
        //some code
    } else {
        break label;
    }
}
4

5 に答える 5

3

このbreakステートメントはループを中断し、制御をラベルに移しません。

break内側と外側のループがある場合は、 でラベルを使用します。ラベルなしbreakは最も内側のループ (現在のループ) を中断しますが、ラベル付きbreakは外側のループを指定できます。

参照: http://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html

特にBreakWithLabelDemo

于 2013-02-12T15:27:28.310 に答える
2

ラベルの使用は避けるようにしてください。そこでできることは次のとおりです。

while(true) {
    if(x == 0 && y == 0) {
        break;
    }
    // some stuff with x and y
}
于 2013-02-12T15:28:35.753 に答える
1

再帰関数を使用することをお勧めします。

public void work(){
    // some code
    if (x != 0 && y != 0) {
        //some code
    } else {
        work();
    }
} 

breakループなしでは使用できません

于 2013-02-12T15:39:40.770 に答える
-1

私の知る限り、ラベルは の周り{}で任意に使用することはできません。for、while、または do-while ループをマークするためにラベルを使用する必要があります

于 2013-02-12T15:27:19.293 に答える