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

线程“main”java中出现异常。util。我的代码上没有任何异常?

汲睿
2023-03-14

我做错了什么??

错误是:

线程“main”java中出现异常。util。java上的NoTouchElementException
。util。扫描仪。通过java上的(Scanner.java:862)
。util。扫描仪。下一步(Scanner.java:1485)
在java。util。扫描仪。nextInt(Scanner.java:2117)
位于java。util。扫描仪。nextInt(Scanner.java:2076)
在MyClass上。main(MyClass.java:14)

代码如下:

import java.util.Scanner;
import java.util.Random;
public class MyClass {
public static Scanner scan = new Scanner(System.in);
public static void main(String args[]) {
    int person,ai,aiint;
    Scanner scan = new Scanner(System.in);
     Random rand = new Random(); 

   System.out.println("Let's Play rock paper scissors! press 1 for rock 2 for paper 3 for scissors ");
   System.out.println();
   aiint=rand.nextInt(3)+1;
   System.out.println("Enter your play: ");
    person=scan.nextInt();
    System.out.println("Computer play is: " +aiint);
    System.out.println("Your play is:" +person);
    if (person==aiint) {
        System.out.println("It's a tie!");
    }
    else if (person==1){
            if(aiint==2){
                System.out.println("Paper beats rock, you lose!");
            }
            else if(aiint==3){
                System.out.println("Rock beats scissors, you win!");
            }
        }
    else if (person==2){
            if(aiint==1){
                System.out.println("Paper beats rock, you win!");
            }
            else if (aiint==3){
                System.out.println("Scissors beats paper, you lose!");
            }
        }
    else if (person==3){
        if(aiint==1){
            System.out.println("Rock beats scissors, you lose!");
        }
        else if(aiint==2){
            System.out.println("Scissors beats paper. you win!");
        }
    }    
    }
}

共有1个答案

施博文
2023-03-14

你的代码运行良好。

但是由于您提到了NoSuchElementExc0019,当您试图从Scanner中读取某些内容时,它会被抛出,但是Scanner没有任何内容要读取。

从扫描仪的留档#nextInt()

@抛出NoSuchElementExcture,如果输入已耗尽

要防止它,您应该检查Scanner中是否存在任何元素:

if(scan.hasNextInt()){
    person = scan.nextInt();
} else {
    //show error
    return;
}
 类似资料: