web-dev-qa-db-ja.com

WHILEループの複数の条件

ユーザーが「N」または「n」を入力したときに、whileループを終了したい。しかし、それは機能しません。 1つの条件でうまく機能しますが、2つの条件では機能しません。

import Java.util.Scanner;

class Realtor {

    public static void main (String args[]){

        Scanner sc = new Scanner(System.in);

        char myChar = 'i';

        while(myChar != 'n' || myChar != 'N'){

           System.out.println("Do you want see houses today?");
           String input = sc.next();
           myChar = input.charAt(0); 
           System.out.println("You entered "+myChar);
        }
    }
}
5
user547453

変更する必要があります||から&&ループに入るには、両方の条件が真でなければなりません。

while(myChar != 'n' && myChar != 'N')
21
Nick Rolando

あなたの状態は間違っています。 myChar != 'n' || myChar != 'N'は常にtrueになります。

使用する myChar != 'n' && myChar != 'N'代わりに

1
toniedzwiedz

コードの場合、ユーザーが(たとえば)「X」を入力すると、while条件の評価に到達すると、「X」が「n」(nChar!=「n」)とは異なると判断され、ループ条件が作成されます。 trueにして、ループ内でコードを実行します。 2番目の条件も評価されません。

0
Edwin Dalorzo