我有两个问题。 第一
int i = 0;
System.out.println("\nint i is" + (i == 0) ? "i==0" : "i!=0");
我收到此错误:类型不匹配:无法从String转换为布尔值
Eclipse告诉我
1快速解决方案:
插入!= null检查
第二
System.out.println("\nint i is" + (i == 0) != null ? "i==0" : "i!=0");
使用!= null检查我没有错误,但是" \ nint我是"没有打印,只有结果i == 0。我完全不理解错误。请帮忙=)
答案 0 :(得分:2)
您需要正确地为条件表达式括起句子:
System.out.println("\nint i is" + ((i == 0) ? "i==0" : "i!=0"));
否则,在应用条件之前执行+
,因此条件解析如下:
"\nint i is" + (i == 0) ? "i==0" : "i!=0"
----------------------- ------ ------
| | |
Condition ---+ | |
When the condition is true -+ |
When the condition is false ----------+
"\nint i is" + (i == 0)
是一个有效的Java表达式,它产生一个字符串,触发“需要一个布尔”错误。