当前位置: 首页 > 知识库问答 >
问题:

我在java中遇到了这个运行时错误:java。util。我不知道该怎么解决这个问题

庾才
2023-03-14

我正在用java制作一个tic-tac-toe游戏,作为家庭作业。我有一个名为TicTacToe的父类和一个名为humanVsHuman的派生类。

下面的方法是在派生类中编写的。它提示用户输入他们想要输入游戏棋子的位置(X或O),然后从父类中调用两个方法:一个将X或O存储在名为setGb()的多功能数组中,另一个用名为displayBoard()的新棋子显示棋盘。

方法如下:

private void playGame() {
    Scanner keyboard = new Scanner (System.in);
    int row, col;
    System.out.println("When playing, enter the row and column position for your X or O piece separated by a space.");
    do{
        System.out.print(player1 + ", Enter X position: ");
        row = keyboard.nextInt();
        col = keyboard.nextInt();
        setGb(row, col, 'X');
        displayBoard();

        System.out.print(player2 + ", Enter O position: ");
        row = keyboard.nextInt();
        col = keyboard.nextInt();
        setGb (row, col, 'O');
        displayBoard();
        keyboard.close();
    } while (!gameOver());
}

我收到以下运行时错误:

When playing, enter the row and column position for your X or O piece separated by a space.
Deena, Enter X position: Exception in thread "main" java.util.NoSuchElementException
    at java.util.Scanner.throwFor(Unknown Source)
    at java.util.Scanner.next(Unknown Source)
    at java.util.Scanner.nextInt(Unknown Source)
    at java.util.Scanner.nextInt(Unknown Source)
    at Assignment7C.HumanVsHuman.playGame(HumanVsHuman.java:38)
    at Assignment7C.HumanVsHuman.repeatGame(HumanVsHuman.java:28)
    at Assignment7C.HumanVsHuman.game(HumanVsHuman.java:14)
    at Assignment7C.TicTacToeTest.main(TicTacToeTest.java:10)

一旦显示输入位置的提示,并且在我能够输入位置之前,我就会得到错误。

提前感谢你的帮助。

共有2个答案

费锋
2023-03-14

您是否尝试从while循环中删除以下代码并查看其是否有效。

    keyboard.close();

也可以将其添加到循环之外。

尉迟子民
2023-03-14

移动键盘。close()退出循环。在游戏结束之前,您不想关闭扫描仪。这不会解决问题中的异常,但无论如何都需要这样做,以避免下一个问题。

 类似资料:
  • 失败:生成失败,出现异常。 > 其中:Script“C:\flutter\packages\flutter_tools\gradle\flutter.gradle”行:900 错误:任务“:app:CompileFlutterBuildDebug”执行失败。 进程“command”C:\flutter\bin\flutter.bat“已完成,退出值为非零%1 生成在%12s中失败异常:Gradle

  • 我是Java编程的初学者,我不知道如何解决这个问题: “创建一个投资应用程序,计算如果按7.5%的年复利计算,2500美元的投资需要多少年才能达到至少5000美元。” 我已经尝试使用for循环和do循环来尝试解决问题,但它不起作用。请帮助! 这是我在尝试了目前为止的一切之后得到的: 帮助将不胜感激! 谢谢

  • 我已经有以下CORS问题好几天了,我不打算解决它。localhost:4200上的Angular应用程序不允许我访问上传照片的路径。 我的后台在拉勒维尔 我可以登录、注册和执行其他帖子请求,但不能这样。 这是我的应用程序的图像。 这是我注册为全球中间件的CORS中间件] 网络选项卡中的响应标头 1

  • 我在学习android studio时遇到了这个错误: 08-20 11:56:52.192 981 5-9815/com.example.android.courtcountee1 E/AndroidRuntime:致命异常:main process:com.example.android.android.courtcountee1,PID:9815 java.lang.runtimeExcep

  • java.io.ioException:无法运行程序“/root/android/sdk/build-tools/23.0.1/aapt”:错误=2,没有这样的文件或目录

  • 错误:将字节码转换为dex时出错:原因:com . Android . dex . dex异常:多个dex文件定义了Lcom/Google/Android/GMS/internal/measurement/zza bn;:app:transformClassesWithDexForDebug失败错误:任务执行失败”:app:transformClassesWithDexForDebug。com .