C++ if语句似乎忽略了参数

sam*_*oul 3 arguments if-statement function

这是代码.

bool b_div(int n_dividend)
{
    for (int iii = 10 ; iii>0 ; iii--)
    {
        int n_remainder = n_dividend%iii;
        if (n_remainder != 0)
         return false;
        if (iii = 1)
         return true;

    }
}
Run Code Online (Sandbox Code Playgroud)

在测试了我为程序编写的这个函数之后,函数似乎停止在if(n_remainder!= 0)部分.现在,函数应该测试函数所接受的数字是否可以除以10到1之间的所有数字.(直到它返回true才会得到数字)我知道它的第一个数字是2520但是甚至在这个数字在if(n_remainder!= 0)处停止.所以我希望得到一些建议!我无法排除故障!我应该寻找的任何链接或单词都很棒!我仍然是编程的新手,所以任何你可以给予学习的帮助都会摇滚!谢谢!

iko*_*man 9

将您的最后一个if语句更改为:

if (iii == 1)
  return true;
Run Code Online (Sandbox Code Playgroud)

目前,您只有一个等号,它将变量iii设置为1,并且始终为true.通过使用双等于它将比较iii和1.

  • 好决定.一种常见的方式是将常量放在左侧,这样就可以得到编译时错误,避免出现这种错误.这看起来像:if(1 == iii)...... (2认同)