我正在编写一个使用输入参数来生成布尔条件结构的代码。我目前正在使用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 '||':
^
我想知道如何处理此错误。 最后的预期结果是,我可以创建布尔条件的结构(在开始时已声明)并将其保存到对象中,然后可以在其他代码中使用它。 如果您可以通过我可以很容易理解这一点的代码来提供帮助,我将非常高兴。
谢谢
答案 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;
}