0
Scanner input = new Scanner(System.in);
selection = input.nextInt();
while (selection != 1 || selection != 2 || selection != 3 || selection != 4){
    System.out.println("*");
    selection = input.nextInt(); 
}

上記のコードは、何を入力してもループに入り、繰り返されます。たぶんどこかでばかげた間違いをしているのでしょうが、おそらく寝不足で見えません。どんな助けでも大歓迎です、ありがとう。

すべての or 記号が && 記号に変更されましたが、それでもループし続けますか?

4

3 に答える 3

4

交換

while (selection != 1 || selection != 2 || selection != 3 || selection != 4)

while (selection != 1 && selection != 2 && selection != 3 && selection != 4)

選択 != 1 || selection != 2 is alwaystrue becauseselection` は 1 でも 2 でもありません。

于 2013-01-26T22:51:16.060 に答える
1

あなたの条件は常に真です。選択した任意の数値について、常に1 ではない2 ではない. 11 に等しいが、2 に等しくないため、条件は真であり、同様に 2 は 1 に等しくないため、条件は真である. 他のすべての数値は 1または2 に等しくないため、条件は依然として true です。

于 2013-01-26T22:51:24.297 に答える
1

while式が false でない限り、ブロックを実行します。 selection != 1 || selection != 2は常に真です。

私はあなたが変わりたいと思うか!===それ以上に

while (0 < selection && selection <= 4)
于 2013-01-26T22:54:01.997 に答える