CC++ & Algorithm

C++ for 循环基础

简单68
语言版本:C++Python
概述:用“重复做一件事直到完成”的比喻,教你如何用for循环让程序自动数数。

会数数的电脑: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个错误

  1. 忘记分号
    for循环的三个部分之间必须用分号隔开。
    for (int i=1 i<=5 i=i+1)
    for (int i=1; i<=5; i=i+1)

  2. 循环条件写错导致死循环
    比如 i <= 5 改成 i >= 5,同时还用 i = i + 1,那么i从1开始永远不小于5,循环会一直运行下去(电脑会卡住)。一定要检查条件是否能在某次变为假。

  3. 花括号里只放一条语句时忘记花括号,但后来想加多条语句
    如果循环体只有一条语句,花括号可以省略,但加上更安全。例如:

    // 这样写没错,但下次想加第二句时容易忘加花括号
    for (int i=1; i<=3; i=i+1)
        cout << i << " ";
    // 如果想再加一句,必须加花括号
    
  4. 计数变量作用域搞混
    如果计数变量在循环前已经用过,又在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。电脑最擅长做这些重复计算啦!

例题精讲

1单选题

以下C++代码中,for循环的循环体将被执行多少次? for(int i=1; i<=5; i++) { cout << i; }

A4次
B5次
C6次
D无限次
2判断题

在C++中,for循环的括号内三个表达式(初始化、条件、更新)都可以省略不写,但两个分号不能省略。

3填空题
以下代码用于计算1到100的累加和,请在横线处填写合适的代码。
int sum = 0;
for(int i=1; i<=100; ___ )
{
    sum += i;
}
4单选题

执行以下C++代码后,输出结果是什么? int s=0; for(int k=0; k<3; k++) { s = s + k; } cout << s;

A0
B3
C6
D9
5填空题
以下代码用于输出“Hello”5次,请在横线处填写合适的代码。
for(int i=0; ___ ; i++)
{
    cout << "Hello" << endl;
}