我的代码上的线程“main”java.util.NoSuchElementException 中的异常?
Posted
技术标签:
【中文标题】我的代码上的线程“main”java.util.NoSuchElementException 中的异常?【英文标题】:Exception in thread "main" java.util.NoSuchElementException on my code? 【发布时间】:2018-03-19 20:46:01 【问题描述】:我做错了什么??
错误是:
线程“main”中的异常 java.util.NoSuchElementException 在 java.util.Scanner.throwFor(Scanner.java:862) 在 java.util.Scanner.next(Scanner.java:1485) 在 java.util.Scanner.nextInt(Scanner.java:2117) 在 java.util.Scanner.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!");
【问题讨论】:
有什么理由要实例化new Scanner(System.in)
两次?
自己试了下代码。实际工作正常。
【参考方案1】:
您的代码运行良好。
但是由于您提到了NoSuchElementException
,当您尝试从Scanner
读取某些内容但Scanner
没有要读取的内容时,它会被抛出。
来自Scanner#nextInt()
的文档
@throws NoSuchElementException 如果输入用尽
为了防止它,你应该检查Scanner
中是否存在任何元素:
if(scan.hasNextInt())
person = scan.nextInt();
else
//show error
return;
【讨论】:
以上是关于我的代码上的线程“main”java.util.NoSuchElementException 中的异常?的主要内容,如果未能解决你的问题,请参考以下文章
打印菜单。异常 java.util.NoSuchElementException 找不到行
Xcode 线程 1 SIGABRT 上的 Firebase 通知错误
线程“main”java.sql.SQLException中的异常:未选择数据库[重复]
线程“main”中的 Java 异常 java.lang.StringIndexOutOfBoundsException 错误