如何使用Java开关创建布尔条件?
我正在编写一个代码,使用输入参数生成布尔条件的结构。我目前正在使用Java扫描器请求输入,然后使用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
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;
}
“| |”不是一个字符——它是以非法方式组合在一起的两个字符。和&&相同。我相信,您希望使用字符串,| |和&&此外,如果条件允许,阈值