![](/img/trans.png)
[英]How to fix runtime error - Exception in thread “main” java.util.NoSuchElementException
[英]Exception in thread "main" java.util.NoSuchElementException (how to fix error)
这个错误让我很紧张。
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!");}
}
}
如果输入不正确,想结束整个程序。 不确定到底出了什么问题。 现在被困在这个问题上一段时间了。 您如何找出扫描仪和输入的问题?
您的错误纯粹是逻辑错误。 你在不应该出现的地方都有}。 您也没有消耗按 Enter 键在 nextInt() 上生成的 /n“新行”。
为避免混淆您对嵌套 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!");
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.