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

如何使用Java开关创建布尔条件?,java,Java,我正在编写一个代码,使用输入参数生成布尔条件的结构。我目前正在使用Java扫描器请求输入,然后使用Java开关命令生成输出结果 在下面的代码中,扫描仪查找输入,然后询问参数值 ------代码开头------ import java.util.Scanner; class Code { public static void main(String[] args) { char select; double size; double days; Scann

我正在编写一个代码,使用输入参数生成布尔条件的结构。我目前正在使用Java扫描器请求输入,然后使用Java开关命令生成输出结果

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

------代码开头------

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;
    }
}
}

------代码结束------

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 '||':
                 ^
我想知道如何处理这个错误。 最后我的预期结果是,我可以得到我在开始创建时声明的布尔条件的结构,并将其保存到对象中,然后我可以在其他代码中使用它。 如果您能通过代码提供帮助,我会非常高兴,因为我可以很容易地理解这一点


谢谢

Java使用单引号表示的字符和用双引号表示的字符串有所不同。字符只能是一个字符,而字符串可以有任意长度。因此,应该使用双引号而不是单引号

除此之外,代码中的另一个问题是行运算符=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;
}

“| |”不是一个字符——它是以非法方式组合在一起的两个字符。和&&相同。我相信,您希望使用字符串,| |和&&此外,如果条件允许,阈值maxmin@HovercraftFullOfEels谢谢你的评论。是的,我想用字符串。现在我应用了您的建议,由于类型不兼容,我收到了一个错误:String无法转换为char。@tryman谢谢您的评论。是的,很抱歉,这是我现在修复的类型。你是对的minmax是正确的。好吧,用常识来说,如果你的大小写由字符串组成,那么开关变量operator不应该也是一个吗?谢谢你的评论和代码。我应用了它,但得到的错误是:错误:不兼容的类型:字符串无法转换为字符大小写&&:^我也编辑了我的答案以解决该问题。干杯: