你真的理解”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与非零)——>逻辑值(判断条件为真或假)

你真的理解”n%2!=0“吗?此处find=0——>find就为假——>!find为真
!find为真(!find=1)执行循环——>find(find=0)就为假执行循环