布尔和switch语句组合

时间:2016-06-26 14:16:25

标签: java

我正在处理任务,代码没有警告消息。当我尝试在控制台中运行代码时,我收到消息:"线程中的异常" 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);
        }
    }
}

如果有人可以帮我找到解决方案,我将不胜感激。 提前致谢!

2 个答案:

答案 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"中获取一个数字。 (这将是一项相当艰巨的任务;))。

尝试首先给程序一个数值(整数)值。