【问题标题】:Variable not defined in loop?变量未在循环中定义?
【发布时间】:2012-12-08 04:17:51
【问题描述】:

第 13 行说:“i”的名称查找已更改为 ISO“for”范围

#include <iostream>
using namespace std;

int main()
{
    int Fib[40];
    Fib[0] = 1;
    Fib[1] = 1;
    cout << Fib[0] << Fib[1] << endl;

    for (int i=2; i<40; i++)
    Fib[i]=Fib[i-1]+Fib[i-2];
        cout << Fib[i] << endl;
}

【问题讨论】:

  • 如果没有大括号,For 循环只会持续一行。
  • 你知道因为你没有使用花括号,所以只有第一个语句在循环内是吗? cout &lt;&lt; Fib[i] &lt;&lt; endl; 行在 for 循环之外。还要修正你的缩进。
  • 哦,我明白了,非常感谢

标签: c++ variables for-loop scope


【解决方案1】:

您忘记了要在循环中执行的指令范围:

for (int i=2; i<40; i++) {
    Fib[i]=Fib[i-1]+Fib[i-2];
    cout << Fib[i] << endl;
}

循环只会执行单个指令或单个指令范围。在您的代码中,只有第一行是循环的一部分。第二个不是,因此i 超出范围。在 C++ 中,是否缩进这些行都无关紧要。编译器不关心缩进;它仅用于帮助程序员,而不是编译器。

【讨论】:

    【解决方案2】:

    最后一行有 [i] 它不在循环内 cout

    for (int i=2; i<40; i++) {
        Fib[i]=Fib[i-1]+Fib[i-2];
        cout << Fib[i] << endl;
    } 
    

    【讨论】:

      猜你喜欢
      • 2015-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-19
      • 2012-04-30
      • 2018-05-17
      相关资源
      最近更新 更多