转换成的算术表达式不理解num = num + !!(num%5)

请具体解释一下这个式子的语法和意思num = num + !!(num%5)

img

当num%5==0;!0==1,!(!0)==!1==0。
当num%5>0;!num%5==0,!(!num%5)==!0==1。
也就是说,只有num%5>0时才执行,num=num+1;这与if语句等价。

num = num + !!(num%5)
当num%5大于0时,!(num%5)=false,数值上等价于0,!!(num%5)=true,等价于1,所以num = num + !!(num%5)=num+1
当num%5等于0时,!(num%5)=true,数值上等价于1,!!(num%5)=false,等价于0,所以num = num + !!(num%5)=num+0

判断num%5==0 %s是取余
如果取余等于0的情况下,num++ num=num+1;

!!(num%5)相当于(num%5)