为什么 if后面写成num=hd*hd*hd+td*td*td+sd*sd*sd (一个等号)结果是水仙花数字:1 水仙花数字:8 水仙花数字:729 水仙花数字:370 水仙花数字:371 水仙花数字:378 水仙花数字:1099 而写成num==hd*hd*hd+td*td*td+sd*sd*sd (两个等号) 结果就变成 水仙花数字:153 水仙花数字:370 水仙花数字:371 水仙花数字:407 )
=是赋值,==是判断条件
首先,1个= 是赋值符号,“变量 = **”,变量赋值为**
2个= 是等于符号,if条件里的“变量 == **”,是看变量和**是否相等;
然后,
for循环原意是从100开始向上自加1,到1000;
而if(num=****)里,num赋值为****了,改变了循环条件。如:for循环第一次循环,num等于100,num小于100成立,经过if后,num赋值为1*1*1+0*0*0+0*0*0了,即此时num等于1,第一次循环结束;然后num自加1,等于2,进入for循环第二次循环,此时num等于2,不是原意的101了
如果你把==换成=号的话,那么在循环到378时,这时的num=378下一次循环为379,379分别拆开3次方之后相加就是1099也就是本次循环之后就跳出循环了