Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java开关大小写布尔函数?_Java_Switch Statement_Boolean_Case - Fatal编程技术网

Java开关大小写布尔函数?

Java开关大小写布尔函数?,java,switch-statement,boolean,case,Java,Switch Statement,Boolean,Case,我正在做一些Java作业,我遇到了一个问题,其中有一个代码与将测试分数转换为字母分数有关,其中必须找到错误: switch(score) { case (score > 90): grade = 'A'; break; etc... 我读过的所有地方,以及我在netbeans中尝试过的所有东西都说布尔函数是不允许的。错误是它应该只是一个if语句吗?与大小写关联的内容必须与开关中使用的表达式类型兼容 您在开关中使用int(可能),因此大小写必须是int值(或其他可转换为int的类型,例如c

我正在做一些Java作业,我遇到了一个问题,其中有一个代码与将测试分数转换为字母分数有关,其中必须找到错误:

switch(score)
{
case (score > 90):
grade = 'A';
break;
etc...

我读过的所有地方,以及我在netbeans中尝试过的所有东西都说布尔函数是不允许的。错误是它应该只是一个if语句吗?

大小写关联的内容必须与
开关中使用的表达式类型兼容
您在
开关中使用
int
(可能),因此
大小写必须是
int
值(或其他可转换为
int
的类型,例如
char
)。问题在于,您提供的
布尔值
不能转换为
int
,并且无论它是什么,都不是您想要的

各国确实:

给定switch语句,以下所有内容都必须为true或a 发生编译时错误:

与switch语句关联的每个case常量都必须 与switch语句的类型兼容的赋值 表达式(§5.2)


如果这两种类型不匹配,您不希望使用一个
开关
,而是使用一系列条件语句(
If else If
),而不是。

根据JLS,case语句的参数只能是
int
short
byte
char
字符串
枚举
文字或常量


因此,为了回答您的问题,给定的代码将不会编译,是的,它应该是一个
if
语句。

我不完全理解您的最后两句话,但您尝试执行的操作将无法使用
开关。。。案例…
,如果
s,则使用
。看起来您所读的是正确的。这就是你要找的确认书吗?是的,一连串的
if/else if
似乎更合适。我想你不理解最后两句话,因为这是错误的一部分。这就是我想要确认的,布尔函数在开关情况下不起作用。谢谢你们的帮助和保证,我没有疯。