为什么我的 for 循环条件不满足?

时间:2021-05-31 22:32:57

标签: c++ loops for-loop

我花了几个小时试图弄清楚为什么我的程序没有进入 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;
}

谁能看出为什么它不起作用?

1 个答案:

答案 0 :(得分:4)

您需要用 n == 0 代替 n = 0 句子的 if 子句。应该这样做。

发生了什么:

  1. 您正在调用带有 4 个参数的 series 函数

  2. 此参数(存储在变量 n 中)在代码的这一部分中被分配了 0 值:

    如果 (n = 0)

  3. C 中,赋值表达式(如 n = 0)返回被赋值的值。在这种情况下,0。因此,您代码的 else 部分将始终执行

  4. 即使 else 部分会ALWAYS EXECUTEfor 循环甚至不会运行一次,因为 i <= nfalse