if语句(java)

程序见附图,多条if和else if并行,并且不知道b1 b2是true还是false,答案是:x=101。大神帮忙分析下思路,谢谢!

else和else if只与它上面最近的if关联,boolean默认值是false, 所以如图所示,注意图中箭头位置,写的是赋值=而非==,所以那里永远为真,结果就是1+100了。当然如果箭头那里改为==true,因为不成立,并且b1|b2为真,所以结果就是1001了

追问

还有个小疑问,关于您说的else和else if只和最近的if相关,但是这个程序里,2个if和2个else if是并列关系是吧?也就是顺序往下执行,而不是比如第一个if(!b2)是true,执行完这一条的算法后就直接跳出大循环结束,这里看即使是true也继续往下执行;如果这样的话,为什么最后一条else if(b1|b2)没做判断,这个也是true呀

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-03-21
其实,b1和b2 是知道的
boolean是基础类型默认值是false,然后按照代码执行下来 x=101了追问

没太明白,如果默认型是false,那么if(!b2)就成立,然后b1=true;然后在判断if(!b1),因为上一步b1是true了,此条不成立,继续往下,这b2也不是true呀,怎么就运算了这里面的表达式了呢

追答

对的呢

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网