(c++)刚自学请问一问do while语句中嵌套if语句,为什么if没有效果呢?

img

img


但如果我在do while结构外查看一下n3,整个语句是在循环的。
这个问题困扰了几天了,网上查的东西只查到的生命周期在局部变量实在无法理解

你加打印在if 前边看看n4,n5 的值。

cout << "n4: " << n4 << endl;
cout << "n5: " << n5 << endl;

回答如下:这应该是要求“水仙花数”,但显然不符合要求,因为仅有n3在变化,并不是do-while的问题,是算法的设计问题,在这种情况下,100-110里面并没有水仙花数,所以结果就没有输出(输出为空),正确的代码应该这样写

#include<iostream>
using namespace std;

int main()
{
    int n1;
    int n2;
    int n3;
    int n4=0;
    int n5=0;
    for(n1=1;n1<10;n1++){
        for(n2=0;n2<10;n2++){
            for(n3=0;n3<10;n3++){
                n4=100*n1+10*n2+n3;
                n5=n1*n1*n1+n2*n2*n2+n3*n3*n3;
                
                if(n4==n5){
                    cout<<n5<<" ";                    
                }
                else{
                    continue;
                }                
            }
        }
    }
}