【问题标题】:Why is my for loop condition not satisfied? [closed]为什么我的 for 循环条件不满足? [关闭]
【发布时间】:2021-05-31 22:32:57
【问题描述】:

我花了几个小时试图弄清楚为什么我的程序没有进入 for 循环。在main函数中,我给参数n赋值了4,所以条件“i <= n”应该满足。我检查了一下,程序进入了 else 块。当前输出 = in 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;
}

谁能明白为什么它不起作用?

【问题讨论】:

  • if(n = 0){ 是一个任务。您将 n 设置为 0,然后检查它是否不为零,您将返回。但是您将其设置为 0。您的编译器应该对此发出警告。

标签: c++ loops for-loop


【解决方案1】:

您需要将n == 0 替换为if 句子的n = 0 子句。应该这样做。

发生了什么:

  1. 您正在使用 4 参数调用 series 函数

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

    如果(n = 0)

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

  4. 即使else 部分将始终执行for 循环也不会运行一次,因为i &lt;= nfalse

【讨论】:

    猜你喜欢
    • 2022-10-24
    • 2019-06-13
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-08
    • 2023-03-31
    相关资源
    最近更新 更多