【发布时间】:2018-05-05 13:53:14
【问题描述】:
所以我添加了一个catch,我现在看不到任何错误,但是当我运行程序时它重复输入不正确,请再试一次!输入错误请重试!输入错误请重试!直到我关闭程序。有什么想法哪里出错了吗?
do {
try {
boolean updown = sc.nextBoolean();
if (updown == true) {
grid[x + 1][y] = 'S';
grid[x + 2][y] = 'S';
grid[x + 3][y] = 'S';
grid[x + 4][y] = 'S';
drawGrid(grid);
} else if (updown == false) {
grid[x][y + 1] = 'S';
grid[x][y + 2] = 'S';
grid[x][y + 3] = 'S';
grid[x][y + 4] = 'S';
drawGrid(grid);
retry = 2;
}
} catch (Exception e) {
System.out.println("Incorrect input please try again!");
}
} while (retry == 1);
【问题讨论】:
-
除了
true或false之外,updown(布尔值)怎么能是任何东西?我很困惑... -
你的策略有缺陷。
true和false是 onlyboolean值。Scanner.nextBoolean()不能返回任何其他内容。另一方面,你很幸运:如果该方法无法将下一个标记转换为boolean,它将抛出一个InputMismatchException,所以你所要做的就是抓住它。 -
代码格式错误。
-
@John Bollinger 嗨,感谢您的回复,我应该在教程上搜索什么?我之前尝试过 inputmissmatch,因为我认为这是我发布之前的解决方案,但是这些视频对于我正在做的事情来说都非常脱离背景。
-
@Synch 他是一个初学者,我相信每个人都开始这样做,后来它有所改善,不需要粗鲁的 cmets ,至少他尝试过。 :)
标签: java arrays if-statement