程序见附图,多条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了追问
boolean是基础类型默认值是false,然后按照代码执行下来 x=101了追问
没太明白,如果默认型是false,那么if(!b2)就成立,然后b1=true;然后在判断if(!b1),因为上一步b1是true了,此条不成立,继续往下,这b2也不是true呀,怎么就运算了这里面的表达式了呢
追答对的呢