using namespace std;
int main(){
    int userinp=-1,dig1=0,dig2=0,dig3=0,dig4=0;
    while(userinp!=0) {
        cin>>userinp;
        if (userinp=0) userinp=0;
        else if(userinp<0||userinp>9999) cout<<"Wrong input";
        else if (userinp<10) { dig1++; userinp =-1;}
        else if (userinp<100) {dig2++; userinp =-1;}
        else if (userinp<1000) {dig3++; userinp =-1;}
        else {dig4++; userinp =-1;}
    }
    cout<<dig1<<endl<<dig2<<endl<<dig3<<endl<<dig4;
    return 0;
    }

我正在尝试从学校教科书中进行练习,但由于陷入0时会运行else if userinp<10,因此陷入了无限循环。为什么?如果我在if结束后删除了部分。

最佳答案

您已在if条件部分中放置了赋值(=)而不是均等检查(==)。

更改此行:

if (userinp=0) userinp=0;

对此
if (userinp==0) userinp=0;

而且你应该很好。

祝好运

关于c++ - C++如果在if为真后运行,为什么要这样做,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59865608/

10-12 17:30