我遇到了Catch语句的问题,因为我对他们很新,并且正在学习它们。 我创建的程序从用户那里获取输入,使用x和y co-ords以及布尔值true / false将船放置在10x10网格上,以将它们向上或侧向放置。当玩家输入一个太高/太低的数字或从网格中输入数据时,会捕获异常,我使用了一个while语句尝试循环这个但是程序没有循环回来。如果对这些陈述有更多经验的人可以看一看并指出我正确的方向,我将非常感激。
do {
try {
boolean updown = sc.nextBoolean();
if (updown == true) {
grid[x][y] = 'S';
grid[x + 1][y] = 'S';
grid[x + 2][y] = 'S';
grid[x + 3][y] = 'S';
drawGrid(grid);
} else if (updown == false) {
grid[x][y] = 'S';
grid[x][y + 1] = 'S';
grid[x][y + 2] = 'S';
grid[x][y + 3] = 'S';
drawGrid(grid);
retry = 2;
}
} catch (InputMismatchException | ArrayIndexOutOfBoundsException e) {
sc.next();
System.out.println("Incorrect input please try again!");
}
} while (retry == 2);