循环的基本语句:
for ( 类型 变量名 : 数组名 ){
}
使用举例:
打印正整数1~10的值,每行打印一个整数:
cpp
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
int main() {
int a[10]={1,2,3,4,5,6,7,8,9,10};
for(int p: a){//int p中的变量p是任意的,只要p的类型和数组a内的元素类型一样就行,均不影响数组的输出结果
cout<<p<<endl;
}
}
上面的代码运行过程中可能会遇到如下报错:

这个时候复制错误发给ai,ai的提供的原因是:
你的编译器默认使用 C++98 标准编译代码,但范围 for 循环(for (auto x : 容器))是 C++11 及以上标准才支持的特性,所以会报错。
这个错误的解决方法:
1. Dev-C++
- 打开 Dev-C++,点击顶部菜单栏「工具」→「编译选项」;
- 在弹出的窗口中,勾选「编译器」→「编译时加入以下命令」;
- 在输入框中输入:
--std=c++11(注意是两个短横线); - 点击「确定」,重启 Dev-C++ 即可。
2. VS Code(MinGW 编译器)
- 打开
.vscode文件夹下的tasks.json; - 在
args数组中添加"--std=c++11"。
再次运行代码,得到答案:

对于范围 for 要慎重使⽤!范围 for 是对数组中所有元素进⾏遍历的,但是我们实际在做题的
过程中,可能只需要遍历数组中指定个数的元素,这样范围 for 就不合适了。
也可以引入一个新的关键字:auto
auto的主要⽤途是让编译器⾃动推导出变量的类型的,⽐如上面的代码可以这样来写:
cpp
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
int main() {
int a[10]={1,2,3,4,5,6,7,8,9,10};
for(auto p: a){//int p中的变量p是任意的,只要p的类型和数组a内的元素类型一样就行,均不影响数组的输出结果
cout<<p<<endl;
}
}
