我花了几个小时试图弄清楚为什么我的程序没有进入 for 循环。在main函数中,我给参数n赋值了4,所以应该满足条件“i <= n
”。我检查了一下,程序进入了 else 块。当前输出 = 在 else 5
#include<iostream>
using namespace std;
int series(int n){
int result = 5;
if(n = 0){
return 1;
}else{
for(int i = 1; i <= n; i++){
cout << "in loop ";
}
cout << "in else ";
return result;
}
}
int main()
{
cout << series(4);
return 0;
}
谁能看出为什么它不起作用?
答案 0 :(得分:4)
您需要用 n == 0
代替 n = 0
句子的 if
子句。应该这样做。
发生了什么:
您正在调用带有 4 个参数的 series
函数
此参数(存储在变量 n
中)在代码的这一部分中被分配了 0
值:
如果 (n = 0)
在 C
中,赋值表达式(如 n = 0
)返回被赋值的值。在这种情况下,0
。因此,您代码的 else
部分将始终执行。
即使 else
部分会ALWAYS EXECUTE,for
循环甚至不会运行一次,因为 i <= n
是 false 。