再做 运行 次

Do while Running more times

如果用户输入无效选项,我必须得到 1 到 3 个答案,而应该重新 运行 但问题是它重新 运行 三次。就像如果我把答案放在 1 到 3 中,它会在其他数字上给出正确的结果,它会重新打印循环三次。

char choice;
public void mainMartfunc() throws java.io.IOException{

        do{
            System.out.println("Login as:");
            System.out.println("    1. Customer");
            System.out.println("    2. Employee");
            System.out.println("    3. Owner");
            choice = (char) System.in.read();
            } while(choice < '1' || choice>'3');
        switch(choice){

         case '1':
             System.out.println("\tCustomer Menu:");
             break;

         case '2':
             System.out.println("\tEmployee Menu:");
             break;

         case '3':
            System.out.println("\tOwner Menu:");
            break;
        }
}

当您按下回车键时,会生成两个字符:一个回车符 return '\r' 和一个换行符 '\n'System.in.read() 从输入中取出每个字符,所以你得到三个字符,包括数字。

尝试改用扫描仪。它会将您的输入标记化,这样您就不会收到那些空白字符。

java.util.Scanner input = new java.util.Scanner(System.in);

然后将您的 choice 作业更改为如下内容:

choice = input.next().charAt(0);