求1000以内水仙花数字

img


现在的代码运行的结果是正确的,

img


但是当我,把注释掉的代码加上去,运行结果就是无限循环打印第一个数字153。这是为啥呀?

是因为当执行到1000以内第一个水仙花数153时,因为if的条件是一直满足,else就一直不会执行,num的值不++,num就一直是153,所以就一直打印153.


把else去掉以后,num++在检测到153是水仙花数然后打印之后,num就变为154,以后一直都是检测一个数后,如果是水仙花数就打印,不是就不打印,然后就开始检测下一个数,程序逻辑就符合题目意思了。

ifelse是判断语句走了if,就不会走else。dowhile是循环语句就会持续出现153