以下代码的目的就是让程序第一次执行if第二次执行else,但他不是已经在for语句前把b给定成false了吗?随后的if(b=!b)不就是true吗?那么这个程序是怎么执行到if的呢?b明明已经没法变了
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里面的语句,如此循环往复。