首页 > 解决方案 > 为什么“i”是未声明的标识符?(c++)

问题描述

`代码错误的图像

我可以将“i”用于课程,但不能用于成绩。我查看了其他示例,它们做同样的事情,允许“i”出现在成绩部分。

#include <iostream>

using namespace std;

int main() {
  float course1;
  float grade1;
  float totalhour =0;
  float points;
  float totalpoints =0;
  for(int i = 1; i <=4; ++i)
  cout << "Course " << i << "hours" ;
  cin >> course1;

  cout << "Grade for course " << i << endl;
  cin >> grade1;
}

错误:使用未声明的标识符 'i' cout << "Grade for course" << i << endl; ^

标签: c++

解决方案


因为i是在循环中声明的for,所以只能在循环中使用。

如果你想重复多件事,你应该用{}.

#include <iostream>

using namespace std;

int main() {
  float course1;
  float grade1;
  float totalhour =0;
  float points;
  float totalpoints =0;
  for(int i = 1; i <=4; ++i) {
    cout << "Course " << i << "hours" ;
    cin >> course1;

    cout << "Grade for course " << i << endl;
    cin >> grade1;
  }
}

如果你只想i在循环之后使用,你应该在循环之前声明它。

#include <iostream>

using namespace std;

int main() {
  float course1;
  float grade1;
  float totalhour =0;
  float points;
  float totalpoints =0;
  int i;
  for(i = 1; i <=4; ++i)
  cout << "Course " << i << "hours" ;
  cin >> course1;

  cout << "Grade for course " << i << endl; // i will be 5 here
  cin >> grade1;
}

推荐阅读