-1

我应该问“选择”,如果他输入其他内容,用户应该输入 ab 或 c,它应该重复这个问题。我什至不明白我是怎么做到的,然后我遇到了另一个问题:稍后我应该打印出选择的咖啡,但是因为“eingabe”在一段时间内或者如果身体在我想要的时候无法识别稍后使用它。我该如何解决这个问题?还是我应该使用另一个循环?字符甚至是在这里使用的正确类型吗?提前谢谢。

    while(eingabe != 'a' || eingabe != 'b' || eingabe ||'c') {
        Out.println("Bitte auswaehlen: ");
        char eingabe = in.readChar();
    }
        
    Out.print("Gewaehlt ");
    if (eingabe == 'a') Out.print("CAPPUCCINO");
    if (eingabe == 'b') Out.print("MOKKA");
    if (eingabe == 'c') Out.print("VERLAENGERTER");
    Out.print(" !");
}
4

3 回答 3

1

如前所述,您应该在循环之外声明它。在检查 c 时,您在循环中输入错误:

    char eingabe = '';
    while(eingabe != 'a' && eingabe != 'b' && eingabe != 'c') {
        Out.println("Bitte auswaehlen: ");
        eingabe = in.readChar();
    }
        
    Out.print("Gewaehlt ");
    if (eingabe == 'a') Out.print("CAPPUCCINO");
    if (eingabe == 'b') Out.print("MOKKA");
    if (eingabe == 'c') Out.print("VERLAENGERTER");
    Out.print(" !");
于 2021-04-08T13:41:52.557 回答
1

您的eingabe变量应该在循环之外定义,以便您的其余代码可以访问它。请注意不要使用在条件中检查的值来初始化它,或者更好地使用 do-while 来代替。

我将您的代码切换为使用常规 System.in 和 System.out,因为我不知道那些 in 和 Out 是什么。最后但并非最不重要的一点是,您的输出条件错误,您应该再次询问该值是否与所有预期值不同,而不是是否与任何预期值不同(始终为真):

        char eingabe;
        do {
            System.out.println("Bitte auswaehlen: ");
            eingabe = (char) System.in.read();
        } while (eingabe != 'a' && eingabe != 'b' && eingabe != 'c');

        System.out.print("Gewaehlt ");
        if (eingabe == 'a')
            System.out.print("CAPPUCCINO");
        if (eingabe == 'b')
            System.out.print("MOKKA");
        if (eingabe == 'c')
            System.out.print("VERLAENGERTER");
        System.out.print(" !");
于 2021-04-08T13:44:47.443 回答
0

我觉得你的表达有问题eingabe != 'a' || eingabe != 'b' || eingabe ||'c'。也许你的意思是eingabe != 'a' || eingabe != 'b' || eingabe != 'c'。我认为为了在用户键入其他内容时继续循环,您需要使用&&而不是||. do while 循环非常适合您的用例:

char eingabe;
Scanner in = new Scanner(System.in);
do {
    System.out.println("Bitte auswaehlen: ");
    eingabe = in.next().toCharArray()[0];
} while (eingabe != 'a' && eingabe != 'b' && eingabe != 'c');
于 2021-04-08T13:42:11.650 回答