【发布时间】:2015-08-03 07:53:32
【问题描述】:
我正在尝试进行国际象棋游戏,并且在某个时刻,用户输入了一个与他们想要移动的棋子相关的数字。我之前有下面代码的简化版本,但我最近决定使用“try”和“catch”语句来捕获 InputMismatchException。这是代码:
int inputexception = 0;
do {
inputexception = 0;
try {
System.out.println("What piece would you like to move?");
pieceselectioninput = scan.nextInt();
} catch ( InputMismatchException e ){
inputexception = 1;
}
} while ( inputexception == 1 );
所以一旦我运行这个程序,如果我输入一个非 Int 值,它会一直重复“你想移动哪一块?”一直显示在屏幕上,直到我手动终止程序。
我做错了什么?直到我添加了“try”和“catch”短语之前,情况并非如此。
【问题讨论】:
-
您可以使用
Scanner#nextLine并尝试检查输入是否与仅数字输入匹配,然后再进行转换 -
您是否尝试过使用调试器找出问题所在?
-
@Jens 是的,我有。对我来说问题是扫描仪没有等待我回复,我不知道为什么
标签: java exception java.util.scanner