C++ for 循环基础
简单68会数数的电脑:C++ for 循环入门
小朋友们,你们有没有数过数?比如从1数到5,嘴里说着“1、2、3、4、5”。在C++里,我们可以让电脑帮我们做这种重复的事情,这就用到了for循环。for循环就像是一个“自动计数器”,我们告诉它从哪里开始、到哪里结束、每次加多少,它就会乖乖地一遍遍做同样的事。
想象一下你在跳绳,每跳一下数一个数。第一次跳数1,第二次跳数2……跳完5次就停下来。在C++里,for循环就是帮你完成这个“跳绳数数”过程的工具。
for循环长什么样?
for循环的写法是:
for (开始条件; 继续条件; 每次变化) {
要重复做的事情;
}
我们写一个从1数到5的例子:
#include <iostream>
using namespace std;
int main() {
for (int i = 1; i <= 5; i = i + 1) {
cout << i << " ";
}
return 0;
}
代码解释:
int i = 1;相当于你从数字1开始数。i <= 5;意思是只要 i 不超过5,就继续数。i = i + 1是每次数完后把 i 增加1(下次就数下一个数)。- 每次循环,电脑就输出 i 的值,并在后面加一个空格。
运行结果会显示:1 2 3 4 5
注意循环体里要做什么事就写在花括号{}里面。如果只有一句话,花括号也可以省略,但刚开始学最好都加上花括号,这样更清楚。
仔细看看for循环的三个“小盒子”
可以把for循环想象成三个小盒子,它们分工明确:
1号盒子:开始条件(初始化)
- 只执行一次,就像老师喊“准备——开始!”
- 通常在这里定义计数变量。比如
int i = 1表示从1开始数。
2号盒子:继续条件(判断)
- 每次循环开始前都会检查这个条件是不是“真”(true)。
- 如果条件为真,就执行循环体;如果为假(false),循环就结束了。
- 比如
i <= 5,只要 i 还小于等于5,就继续数。
3号盒子:每次变化(更新)
- 每次循环体执行完之后,立刻执行这里的操作。
- 比如
i = i + 1,相当于数完一个数后,把数字增加1。
举个例子:假设你每天存零花钱。你决定从第1天开始,每天存2元,一直存到第7天。用for循环可以这样写:
#include <iostream>
using namespace std;
int main() {
// 定义总钱数 total 并初始化为0
int total = 0;
for (int day = 1; day <= 7; day = day + 1) {
total = total + 2; // 每天加2元
cout << "第" << day << "天后,总钱数是" << total << "元" << endl;
}
return 0;
}
运行结果会显示:
第1天后,总钱数是2元
第2天后,总钱数是4元
...
第7天后,总钱数是14元
不只是加1:换一种“数法”
for循环的“每次变化”不一定是加1,你可以改成加2、减1,甚至乘2。比如从10数到1(倒着数),只要把条件改成i >= 1,变化改成i = i - 1就行了!
#include <iostream>
using namespace std;
int main() {
// 倒着数,从10到1
for (int i = 10; i >= 1; i = i - 1) {
cout << i << " ";
}
return 0;
}
输出:10 9 8 7 6 5 4 3 2 1
还可以每次跳2个数,比如显示1到10之间的奇数:
#include <iostream>
using namespace std;
int main() {
// 从1开始,每次加2,直到小于等于10
for (int i = 1; i <= 10; i = i + 2) {
cout << i << " ";
}
return 0;
}
输出:1 3 5 7 9
新手最容易犯的4个错误
-
忘记分号
for循环的三个部分之间必须用分号隔开。
❌for (int i=1 i<=5 i=i+1)
✅for (int i=1; i<=5; i=i+1) -
循环条件写错导致死循环
比如i <= 5改成i >= 5,同时还用i = i + 1,那么i从1开始永远不小于5,循环会一直运行下去(电脑会卡住)。一定要检查条件是否能在某次变为假。 -
花括号里只放一条语句时忘记花括号,但后来想加多条语句
如果循环体只有一条语句,花括号可以省略,但加上更安全。例如:// 这样写没错,但下次想加第二句时容易忘加花括号 for (int i=1; i<=3; i=i+1) cout << i << " "; // 如果想再加一句,必须加花括号 -
计数变量作用域搞混
如果计数变量在循环前已经用过,又在for循环里重新定义(如int i),可能会引起混淆。建议只在for循环里定义计数变量,这样循环结束后变量就失效了,比较清楚。
一个完整的例子:算算全班总分
假设有5个同学,老师输入他们的考试成绩,用for循环可以累加总分:
#include <iostream>
using namespace std;
int main() {
int score; // 定义变量存储每次输入的成绩
int sum = 0; // 定义总分,初始为0
cout << "请输入5位同学的成绩:" << endl;
for (int i = 1; i <= 5; i = i + 1) {
cout << "第" << i << "位同学的成绩:";
cin >> score; // 输入一个成绩
sum = sum + score; // 累加到总分
}
cout << "全班总分为:" << sum << "分" << endl;
return 0;
}
运行示例:
请输入5位同学的成绩:
第1位同学的成绩:85
第2位同学的成绩:92
第3位同学的成绩:78
第4位同学的成绩:88
第5位同学的成绩:95
全班总分为:438分
相关指引
学会了for循环,你可以继续了解:
- while循环:另一种做重复事情的方法,适合不确定循环次数的场景。
- 循环嵌套:在一个循环里面再写一个循环,比如打印乘法口诀表。
- break和continue:在循环中途提前结束或跳过某一次。
现在就动手试试吧!把上面例子中的数字改成你喜欢的,比如数一数从1到100的和,或者倒着数从20到0。电脑最擅长做这些重复计算啦!
例题精讲
以下C++代码中,for循环的循环体将被执行多少次? for(int i=1; i<=5; i++) { cout << i; }
在C++中,for循环的括号内三个表达式(初始化、条件、更新)都可以省略不写,但两个分号不能省略。
以下代码用于计算1到100的累加和,请在横线处填写合适的代码。
int sum = 0;
for(int i=1; i<=100; ___ )
{
sum += i;
}执行以下C++代码后,输出结果是什么? int s=0; for(int k=0; k<3; k++) { s = s + k; } cout << s;
以下代码用于输出“Hello”5次,请在横线处填写合适的代码。
for(int i=0; ___ ; i++)
{
cout << "Hello" << endl;
}