为了账号安全,请及时绑定邮箱和手机立即绑定

求指导,谢谢!

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

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

   break;

//退出循环

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


正在回答

4 回答

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

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

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


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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第一季(IDEA工具)升级版
  • 参与学习       1165151    人
  • 解答问题       17581    个

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

进入课程

求指导,谢谢!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信