首先,这是完全不同的,写在第一个for里面那么,第一个循环每运行一次就将 sum初始化一下,而照你这么写sum值在每得到一个完全数,sum的值就会将这个完全数加上,,所以呢,你这个只能输出第一个完全数,后面的都没有,,,,其实用true,false判断比这个好很多,在第二个循环之前初始化一下,,不然sum就会保持之前的状态,,,当然你讲if判断里面的sum+=j改成sum=j也可以,,可以成功