异常线程“main” java.util.NoSuchElementException(如何修复错误)
问题描述:
这个错误让我的神经。异常线程“main” java.util.NoSuchElementException(如何修复错误)
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at Main.main(Main.java:266)
at Ideone.test(Main.java:72)
at Ideone.test(Main.java:32)
at Ideone.main(Main.java:23)
我的代码:
import java.util.Scanner;
import java.lang.Math;
class Main {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("Welcome. What is your name?");
String x;
x = scan.nextLine();
System.out.println("Hello " + x + ". Try your best to crack the code!");
System.out.println(" ");
//Phase 1
System.out.println("PHASE 1");
System.out.println("Enter a number:");
int y = scan.nextInt();
if (y == 3){
System.out.println("Correct!");
System.out.println(" ");
//Phase 2
System.out.println("PHASE 2");
System.out.println("Enter a number:");
}
int z = scan.nextInt();
if (z == 1 || (z >= 33 && z <= 100)){
System.out.println("Correct!");
System.out.println(" ");
//Phase 3
System.out.println("PHASE 3");
System.out.println("Enter a number:");}
int c = scan.nextInt();
if (c % 3 == 0 || c % 7 == 0){
System.out.println("Correct!");
System.out.println("You have cracked the code!");}
else{
System.out.println("Sorry, that was incorrect!");
System.out.println("Better luck next time!");}
}
}
要结束的整个程序,如果输入不正确。 不知道什么是错的。 现在已经停留了一段时间。 如何找出扫描仪和输入有什么问题?
答
您的错误纯属逻辑错误。你有他们不应该的地方。 您还没有消耗/ n的“新行”在按下输入产生的nextInt()。
为了避免混淆你的自我使用打开和关闭嵌套if的注释 当创建if和使用空格将所有内容隔开时,创建框架工作是一种很好的做法。
if(conditon)
{
if_statement(s);
}
else
{
else_statement(s);
}
这是您正确的码
import java.util.Scanner;
import java.lang.Math;
class BrockTaylor
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
System.out.println("Welcome. What is your name?");
String x;
x = scan.nextLine();
System.out.println("Hello " + x + ". Try your best to crack the code!");
System.out.println(" ");
System.out.println("PHASE 1");
System.out.println("Enter a number:");
int y = scan.nextInt();
// consume the /n
scan.nextLine();
//Phase 1
if (y == 3)
{
System.out.println("Correct!");
System.out.println(" ");
System.out.println("PHASE 2");
System.out.println("Enter a number:");
int z = scan.nextInt();
// consume the /n
scan.nextLine();
//Phase 2
if (z == 1 || z >= 33 && z <= 100)
{
System.out.println("Correct!");
System.out.println(" ");
System.out.println("PHASE 3");
System.out.println("Enter a number:");
int c = scan.nextInt();
// consume the /n
scan.nextLine();
//Phase 3
if (c % 3 == 0 || c % 7 == 0)
{
System.out.println("Correct!");
System.out.println("You have cracked the code!");
}
else // phase 3
{
System.out.println("Sorry, that was incorrect!");
System.out.println("Better luck next time!");
}
}
else // phase 2
{
System.out.println("Sorry, that was incorrect!");
System.out.println("Better luck next time!");
}
}
else// phase 1
{
System.out.println("Sorry, that was incorrect!");
System.out.println("Better luck next time!");
}
}
}
*“你如何找出什么是错的扫描仪和投入?” *调用'nextInt'之前调用'hasNextInt'。 – Andreas