再做 运行 次
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);
如果用户输入无效选项,我必须得到 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);