我正在处理任务,代码没有警告消息。当我尝试在控制台中运行代码时,我收到消息:"线程中的异常" main" java.util.InputMismatchException"
我尝试了使用INT" oddoreven"的几种不同组合。对于一切,甚至去为String" Fraga"。但似乎没有任何效果。
import java.util.Scanner;
import java.lang.*;
public class fragor {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Please ask me a question!");
int oddoreven = input.nextInt();
String Fraga = input.nextLine();
boolean even = oddoreven % 2 == 0;
boolean odd = oddoreven % 1 == 0;
boolean fragetecken = Fraga.endsWith("?");
boolean utropstecken = Fraga.endsWith("!");
int cases = 0;
switch (cases) {
case 1:
fragetecken = Fraga.endsWith("?");
even = oddoreven % 2 == 0;
System.out.println("Yes.");
break;
case 2:
fragetecken = Fraga.endsWith("?");
odd = oddoreven % 1 == 0;
System.out.println("No.");
break;
case 3:
utropstecken = Fraga.endsWith("!");
System.out.println("Wow.");
break;
default:
System.out.println("You allways say" +Fraga);
}
}
}
如果有人可以帮我找到解决方案,我将不胜感激。 提前致谢!
答案 0 :(得分:0)
好吧,让我们看看能不能为你做好准备。
错误似乎来自第20行。您要求:
System.out.println("Please ask me a question!");
int oddoreven = input.nextInt(); // this is line 20
String Fraga = input.nextLine();`
当然,你在问题之后写的第一件事就是问题(因此是String
),但在代码中,你要求的第一件事就是整数。这样就可以获得InputMismatchException
。
因此,如果你写一个整数,你就不会再次得到同样的异常,这不是你想要做的。
答案 1 :(得分:0)
你最有可能使用错误的输入。
在你的代码中,你做了:
int oddoreven = input.nextInt();
String Fraga = input.nextLine();
您应首先为输入提供一个整数值,然后是字符串值。
程序将做的是尝试解析你传递给问题的任何内容:
请问我一个问题!
你应该给他一个整数值。 如果你给他另一个值,例如" hello",程序将在运行时失败,因为它试图从" hello"中获取一个数字。 (这将是一项相当艰巨的任务;))。
尝试首先给程序一个数值(整数)值。