Java初学者爱好者。
我想从结构化的练习中休息一下,从一个空白页面开始,没有帮助我自己写一些东西来测试自己。
我必须学习console()。readLine(),因为我还没有学习如何从控制台接收用户输入。这导致我解析整数等。我能够构建并编译一个完成我想象的程序,并且完美地完成了! (如果不是有点笨拙......)但是,我想在盒子外面思考,看看我如何以非预期的方式使用它并打破它。在控制台输入除数字之外的任何东西(例如输入P而不是6)它会抛出错误,因为我只告诉它如何处理数字。
长话短说,我超越了自己的知识并自学了很多,但由于我缺乏知识,找不到我想要的答案。如果有人甚至可以告诉我要阅读的内容,我非常乐意自己学习,只需要朝着正确的方向努力。
这是我的计划:
public class mysteryDoors{
public static void main(String[] args){
int doorOne = 1;
int doorTwo = 2;
int doorThree = 3;
System.out.println("Welcome contestant, to the Mystery Doors Game!");
System.out.println("Would you like to find out what is behind door number 1?");
System.out.println("Maybe door number 2?");
System.out.println("Or perhaps, door number 3?!");
int choice = Integer.parseInt(System.console().readLine("Please Choose a door..." ));
while (choice > 3){
System.out.println("I am sorry, please choose one of the available doors.");
int guess = Integer.parseInt(System.console().readLine("Please try again..." ));
choice = guess;
}
if (choice == 1){
System.out.println("Behind door number 1 is a wonderful sofa set!");
}
else if (choice == 2){
System.out.println("Behind door number 2 is a nice shiny silverware set!");
}
else if (choice == 3){
System.out.println("Behind door number 3 is a NEW CAR!");
}
}
}
答案 0 :(得分:1)
为什么不使用Scanner?请参阅:http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html
Scanner scanner = new Scanner(System.in);
int choice = in.nextInt();
AFAIK System.console()在IDE中不起作用。
答案 1 :(得分:0)
使用try/catch块来处理异常,如下所示:
try
{
int guess = Integer.parseInt(System.console().readLine("Please try again..." ));
choice = guess;
}
catch(NumberFormatException e)
{
System.out.println("Sorry, your input should be an integer. Try again.");
e.printStackTrace();
}