如何使用Java开关创建布尔条件?

时间:2019-02-09 01:09:30

标签: java

我正在编写一个使用输入参数来生成布尔条件结构的代码。我目前正在使用Java扫描程序询问输入,然后使用java switch命令生成输出结果。

在下面的代码中,扫描程序查找输入,然后询问参数值。

------------代码开始------------

import java.util.Scanner;

class Code {

public static void main(String[] args) {

    char select;
    double size; 
    double days;

    Scanner scanner = new Scanner(System.in);
    System.out.print("Enter char - or + or ||: ");

    operator = scanner.next().charAt(0);
    System.out.print("Enter size and days: ");

    size = scanner.nextDouble();
    days = scanner.nextDouble();


    switch (select) {

        case '-':
            System.out.print(size + "is less than" + days);
            break;

        case '+':
            System.out.print(size + "is greater than" + days);
            break;
        case '||':
            System.out.print(size + "and" + days + "are equal");
            break;

        default:
            System.out.println("enter valid amount!");
            break;
    }
}

}

------------代码结尾------------

通过编译此代码,它将给出以下错误:

 Code.java:31: error: unclosed character literal
            case '||':
                 ^

我想知道如何处理此错误。 最后的预期结果是,我可以创建布尔条件的结构(在开始时已声明)并将其保存到对象中,然后可以在其他代码中使用它。 如果您可以通过我可以很容易理解这一点的代码来提供帮助,我将非常高兴。

谢谢

1 个答案:

答案 0 :(得分:1)

Java在用单引号(char表示的'和用双引号(String表示的"之间有所区别。 char只能是一个字符,而字符串可以有任意长度。因此,您应该使用双引号而不是单引号。

除此之外,您的代码中还有operator = scanner.next().charAt()行。这只会返回输入的第一个字符,但是&&||是两个字符。因此,请按如下所示更改代码:

// ...
String operator;
// ...
operator = scanner.nextLine()
// ...

switch (operator) {
    case "||":
        System.out.print(Threshold + "<" + min + "||" + Threshold + ">" + max);
        break;

    case "&&":
        System.out.print(Threshold + "<" + min + "&&" + Threshold + ">" + max);
        break;

    default:
        System.out.println("Invalid operator!");
        break;
}