我一直得到一个无限循环,所以我更改了代码,现在我得到了一个错误。我只希望用户能够输入1
- 9
(井字游戏)我真的很感激的任何建议。这是我类的方法
public int move() { // make it so they can only choose 1-9
System.out.print("Where do you want to move? ");
Scanner in = new Scanner(System.in);
int move = in.nextInt();
while(move >=1 || move < 10 )
{
System.out.println("that move is invalid must be 1-9");
break;
}
return move;
}
错误是:
线程"main"中的异常 java.lang.ArrayIndexOutOfBounds异常:3
在Tictactoe。Board.isValid(Board.java:44)
在Tictactoe。TicTacToe.main(TicTacToe.java:116)
C:\Users\blah\AppData\Local\NetBeans\Cache\8.1\executor- 片段\运行.xml:53:返回的 Java:1
生成失败(总时间:7 秒)
在 while 循环中,您希望使用 Scanner 类再次提示用户移动 int。
while(move <= 0 || move >= 10 )
{
System.out.println("that move is invalid must be 1-9");
System.out.print("Where do you want to move? ");
move = in.nextInt();
}
你的逻辑中有一些错误。让我们试试这个:
public int move() { // make it so they can only choose 1-9
System.out.print("Where do you want to move? ");
Scanner in = new Scanner(System.in);
int move = in.nextInt();
while (move < 1 || move > 9) {
System.out.println("that move is invalid must be 1-9");
move = in.nextInt();
}
return move;
}
您的 while 循环将循环,直到输入的数字无效,反转循环中的条件。您还需要从用户那里重新捕获所需的移动。
while(move < 1 || move >= 10 ) {
System.out.println("that move is invalid must be 1-9");
move = in.nextInt();
}