问答详情
源自:4-11 Java循环跳转语句之 break

求指导,谢谢!

if (  sum = (sum + i)>20 ) {

System.out.print("当前的累加值为:" + sum);

   break;

//退出循环

正确答案是if(sum)>20    那我if (  sum = (sum + i)>20 ) ,这样写为什么不行


提问者:jack本兮 2016-01-13 11:01

个回答

  • 偌颜宁
    2016-01-15 18:57:09

    if((sum = (sum + i))> 20)

    这样写就对了,为什么这么写呢

    是先给sum赋值,然后用sum进行判断


    如果按照你的写法的话是按照运算符优先级的话,应该先算(sum + i)这个,然后在算(sum + i)>20得到一个布尔类型的值,然后赋值给sum,但是在JAVA中sum是个int类型,如果将布尔类型赋值int类型是会报错的

  • RockenRoll
    2016-01-15 18:39:32

    是因为if判断语句后面跟的是一个布尔类型的判断语句,不能跟一个计算表达式

  • 努力提升
    2016-01-14 14:16:23

    因为if判断语句后面跟的是一个布尔类型的判断语句,你可以改成if((sum = (sum + i) > 20))或者if (  sum == (sum + i)>20 )

  • jack本兮
    2016-01-13 11:02:49

    或者把 sum = (sum + i)>20的括号去掉,写成 sum = sum + i>20,还是错误,为什么?