choice = UserInput.validString();
while(ValidOption == false){
switch(choice){
case "y":
ValidOption = true;
roll();
break;
case "n":
ValidOption = true;
MainMenu.menu();
break;
default:
System.out.print("You must pick Y or N, try again : ");
ValidOption = false;
choice = UserInput.eraseStringInput();
break;
}
}
return;
}
所以当我按下“y”时,我的程序将在我的switch语句中运行默认情况,然后它会立即运行y情况。这是我的代码。为什么这样做?
这是我的validString方法
public static String validString(){
do {
if(input.hasNext("\\p{Alpha}*")){
s = input.nextLine();
valildString = true;
}
else {
System.out.print("You can only use letters, Try again : ");
input.next();
valildString = false;
}
} while (!(valildString ));
return s;
}
这是PIC: [1]:http://i58.tinypic.com/e6t9v6.png
答案 0 :(得分:0)
读取控制台输入的方法是使用控制台或扫描仪,那么如何获得输入?
Scanner console = new Scanner(System.in);
System.out.println("Please input choice (y/n): ");
String choice = console.nextLine();
---------或---------
Console console = System.console();
String choice = console.readLine("Enter choice (y/n):");
然后使用开关盒。如果我正确地阅读了您的代码,那么还不足以真正看到完全正在发生的事情。
编辑:更改if语句以读取input.next(),并使用else语句读取input.nextLine() - 根据RealSkeptic