问答详情
源自:1-1 Java异常简介

求解求解对你们来说应该很简单的

以下代码的目的就是让程序第一次执行if第二次执行else,但他不是已经在for语句前把b给定成false了吗?随后的if(b=!b)不就是true吗?那么这个程序是怎么执行到if的呢?b明明已经没法变了
593d4b0c0001867009600540.jpg

提问者:牧勤奋 2017-06-11 21:53

个回答

  • 慕婉清0689395
    2017-06-11 22:38:44
    已采纳

    b的值可以变啊,false只是他的初值;if(b=!b)这句代码每执行一次都将b值取反再赋值给b(即b在false和true不断变化)。

  • parton
    2017-06-11 23:18:29

    中间的代码  if(b = !b)的意思是把 b 取反 (false 变成 true 或者 true 变成 false)然后在把值赋给b 然后再把赋值之后的b 当做判定条件看是执行if语句还是else语句,你的图片的意思就是第一次执行if 然后执行else 然后if ... else...这样反复的执行下去

  • JC_richman
    2017-06-11 22:44:08

    for循环中第一次执行到if判断处时,因为变量b为false,故第一次不执行if里面的语句;紧接着b就被赋值为true,等下一次循环时就会执行if里面的语句,如此循环往复。