新手有疑问,我想问问if(k%i);啥意思啊

if(k%i);else break;中前边那部分什么意思呀,真心求解,不是很明白这地方什么意思99999999999

如果K整除I if (k%i) 等价于 if ( k%i != 0)

就是判断k对i进行取余运算得到的结果,如果余数为0则不执行if{}里的语句,否则执行。

if (k%i) 等价于 if ( k%i != 0)

如果取余得零,就是整除,那么就结束循环

if(k%i)就是说如果k除以i的余数为真,则怎么怎么样,在C或C++中,0为false,非0则为true,k%i就是用k对i求余

k%i 整数(除法)求余数
;空语句啥也不做
这个语句的条件为 k%i
条件 k%i --->0 不满足条件,非0 满足条件
if (c)si; else se; 满足条件,执行si ;不满足 执行 se;
这里 si 是空 表达式,se 是 break

判断k取余i的结果if(k%i == 0)则执行if不等于的话执行else

if(k%i) k%i没有余数等于0,!(k%i) 就是整除时执行

可以这样理解,if(k%i) k%i没有余数等于0,而!(k%i) 就是整除时执行。if 后面的数字0对应False,非0对应True

表示 当k可以被i整除时的条件

判断k是不是i的倍数

if条件没有写全把,k%i 取余数

if() 中,通过看括号里面的结果(也就是真假)来判断条件是否成立,是0为假,非0为真。
所以,只要把重点放在括号里面的运算结果即好。
k%i是一个运算式子,结果就是k 对i 取模。而if (k%i != 0) 恰好是取模不等于0的时候结果为真, 取模为0的时候结果为假。
两者的真值表一样,所以说两者等价。if(k % i) 只是一个简写的方法而已,少写了几个字。。。