有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何反复提问,直到我作为一个角色得到正确的答案

我应该问“choose”,用户应该键入a、b或c。如果他键入了其他内容,它应该重复这个问题。我甚至不明白我是如何做到这一点的,然后我又遇到了另一个问题:以后我应该打印出所选的咖啡,但因为“eingabe”是在一段时间后出现的,或者如果我想以后使用它时无法识别它。我如何解决这个问题?还是我应该使用另一个循环?这里使用的字符类型是否正确? Thx提前

    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(" !");
}

共 (3) 个答案

  1. # 1 楼答案

    我认为你的表达式中有一个问题。也许你的意思是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');
    
  2. # 2 楼答案

    您的eingabe变量应该在循环之外定义,以便代码的其余部分可以访问它。只是要小心不要用条件中检查的值初始化它,或者最好使用do while

    我把你的密码换成了常规系统。在和系统中。出去,因为我不知道那些进进出出的是什么。最后但并非最不重要的一点是,您的输出条件是错误的,您应该再次询问该值是否与所有预期值不同,而不是是否与任何预期值不同(这总是正确的):

            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(" !");
    
  3. # 3 楼答案

    如前所述,您应该在循环之外声明它。当检查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(" !");