是因为当执行到1000以内第一个水仙花数153时,因为if的条件是一直满足,else就一直不会执行,num的值不++,num就一直是153,所以就一直打印153.把else去掉以后,num++在检测到153是水仙花数然后打印之后,num就变为154,以后一直都是检测一个数后,如果是水仙花数就打印,不是就不打印,然后就开始检测下一个数,程序逻辑就符合题目意思了。
ifelse是判断语句走了if,就不会走else。dowhile是循环语句就会持续出现153