java报错不知道这么回事?

int grade = input.nextInt();

boolean checkbox;
checkbox = grade > 60 ? "passed" : "failed";

报错:Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - 不兼容的类型: 条件表达式中的类型错误
java.lang.String无法转换为boolean

你声明的checkbox变量是boolean类型,但是那个三目运算结果的返回值都是字符串,即是String类型。所以会出现类型不兼容,无法转换的错误。
可以像下面这样修改:
String checkbox;
checkbox = grade > 60 ? "passed" : "failed";
或者是像下面这样修改:
boolean checkbox;
checkbox = grade > 60 ? true : false。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-09-23
checkbox变量是boolean类型。第二行的三目运算结果无论是哪一种,返回值都是字符串,就是说返回的是String类型。因此,会出现类型不兼容,无法转换的错误。
可以像下面这样修改:
String checkbox;
checkbox = grade > 60 ? "passed" : "failed";
或者是像下面这样修改:
boolean checkbox;
checkbox = grade > 60 ? true : false;追问

感谢感谢

本回答被提问者采纳
第2个回答  2020-09-24
1、在Java语言中boolean类型的变量只有两种结果:true false
所以 你定义 boolean checkbox 变量只能是满足条件为true,不满足条件为false;
checkbox = grade>60?"passed":"failes";
报错的原因"passed"是String字符串类型 ,不能直接赋值给boolean类的checkbox.
2、解决办法
checkbox = grade>60?true:false;
你明白了吗?
第3个回答  2020-09-24
在这个三目运算中 grade>60 返回的是boolean 你“passed”、“failed”接收 这是字符串
第4个回答  2020-09-23
checkbox是 boolean 类型的, 但是你在三元运算符中给它赋得值是 String 类型的, 类型不匹配
相似回答