if(j||i++),他判断的时候,如果j为真(非零),就直接执行下面的语句,不会再判断后面的i++。
因为第一个条件已经为真,而且用的是||,所以整个括号里面必为真,没必要再判断后面的条件了
所以,i++只被执行到一次,那一次,j==0,i=='a',显然不会跳出循环,之后也不会跳出,因为i<'F'总是成立的
j>0||i<'F' 这是循环控制 是一个或语句只要成立一个就是真的 i<'F' 是成立的
if语句里 j||i++ (先说一下 条件语句里 非0为真) 当j不等于0时 或语句为真 前面一个是真就不会判断后面一个了所以j不等于0时i的值不会加1 当j=0是i加1 判断循环控制语句j>0||i<'F' 这里i
在 a|| b 逻辑运算中,只要前面的a为真,后面的b 不会执行了。所以当 j=0时 i < ' F ' 才会被访问到,同理,j = 0 时 i ++ 才会被执行, i = ’ B ‘。
j < 0 , 在if() 中 为真,i ++ 不被执行,i 将一直 等于 ' B ' . 所以循环一直在进行,一直有i = B 在输出(在前六个循环中 i =' A ')。
if( ) { } 只要 ( ) 中的值不为0 ,{ } 中 代码就会被执行。
希望我的解答对你有帮助。
1. if 语句中的条件“ j || i++”产生的问题是逻辑表达式的值已确定,即,j非0,使得||操作的值已为真,则i++的操作不做了,循环过程中i的值就不会修改。
2. for循环中,由于i的值未修改,条件运算(j>0 || i<'F')也为 || ,i<'F'使得循环条件始终为真,所以出现死循环
原因很简单,因为i++并不会把增加后的值放回变量i 中,所以循环条件 j> || i < 'F' 始终是满足的。所以会出现死循环 :)