if ( sum = (sum + i)>20 ) {
System.out.print("当前的累加值为:" + sum);
break;
//退出循环
正确答案是if(sum)>20 那我if ( sum = (sum + i)>20 ) ,这样写为什么不行
if((sum = (sum + i))> 20)
这样写就对了,为什么这么写呢
是先给sum赋值,然后用sum进行判断
如果按照你的写法的话是按照运算符优先级的话,应该先算(sum + i)这个,然后在算(sum + i)>20得到一个布尔类型的值,然后赋值给sum,但是在JAVA中sum是个int类型,如果将布尔类型赋值int类型是会报错的
是因为if判断语句后面跟的是一个布尔类型的判断语句,不能跟一个计算表达式
因为if判断语句后面跟的是一个布尔类型的判断语句,你可以改成if((sum = (sum + i) > 20))或者if ( sum == (sum + i)>20 )
或者把 sum = (sum + i)>20的括号去掉,写成 sum = sum + i>20,还是错误,为什么?