我不是很理解逻辑运算符放在判断语句框中判断语句的标准。
就比如
bool sorted=false;
while(!sorted){
statement
}
问题:括号中的(!sorted)为真时的条件是什么,为什么?
我的理解:!sorted的意思是非sroted籍非false,只要sorted不是false,“(!false)”就成立,但是事实好像是相反的。(!sorted)成立的条件是 sorted=false。
所以问一下各位,逻辑运算符与判断语句怎么理解。。
!sorted的含义为对sorted取反,相当于 if not sorted,即只有取反内容不成立时才为真
判断语句是判断条件是否为真,只要条件中最终的值不是0
都是真的
真:while(true)
while(1)
while(10)
while(-1)
上面的判断都是真
只有: while(0)
或者while(NULL)
是假,及在C语言中只有0
才判断为假.
你代码中: sorted = false
其实就是等于0
,那么先计算!0
,那么就是1
,即非假即真,只有两种. 所以 !sorted
的结果是真.
在C语言中各种符号都有固定的优先级,这个你可以去查看一下符号优先级表就知道了.在这里是先计算!sorted
,在判断计算的结果