你真的理解”n%2!=0“吗?
你真的理解”n%2!=0“吗?
算术表达式n%2与关系表达式n%2!=0的等价
n不是偶数
可表示为如下形式:
n%2!=0
它表示n不能被2整除,则该关系表达式的值为真。换句话说,如果这个关系表达式的值为真,则表示,n不为偶数
为什么等价呢?
我们来看下面这个表格
n%2!=0 | 表示逻辑值 | n%2 | 表示实际值 |
---|---|---|---|
0 | 假 | 0 | 可以被2整除 |
1 | 真 | 非0 | 不可以被2整除 |
那么通过上面这个表格就可以发现
逻辑值与实值存在正相关的特性
又因为C语言中逻辑值表示形式的这种特殊性(0表示假,非0表示真)使得C表达式的书写形式得以简化
也就是算术表达式n%2的值刚好可以表示n%2!=0关系表达式的逻辑值。
简言之,做判断条件时,用算术表达式的值(0与非零)——>逻辑值(判断条件为真或假)
此处find=0——>find就为假——>!find为真
!find为真(!find=1)执行循环——>find(find=0)就为假执行循环