课程
/后端开发
/Java
/Java入门第三季
以下代码的目的就是让程序第一次执行if第二次执行else,但他不是已经在for语句前把b给定成false了吗?随后的if(b=!b)不就是true吗?那么这个程序是怎么执行到if的呢?b明明已经没法变了
2017-06-11
源自:Java入门第三季 1-1
正在回答
b的值可以变啊,false只是他的初值;if(b=!b)这句代码每执行一次都将b值取反再赋值给b(即b在false和true不断变化)。
中间的代码 if(b = !b)的意思是把 b 取反 (false 变成 true 或者 true 变成 false)然后在把值赋给b 然后再把赋值之后的b 当做判定条件看是执行if语句还是else语句,你的图片的意思就是第一次执行if 然后执行else 然后if ... else...这样反复的执行下去
for循环中第一次执行到if判断处时,因为变量b为false,故第一次不执行if里面的语句;紧接着b就被赋值为true,等下一次循环时就会执行if里面的语句,如此循环往复。
举报
Java中你必须懂得常用技能,不容错过的精彩,快来加入吧
3 回答求大佬们解答
2 回答求大神们解答
2 回答求解求解求解
2 回答求解释哈 你懂
3 回答求解求解!!!!