6. 循环语句——编程世界的“重复魔法师”
6.1 为什么需要循环语句
在生活中,我们常常会遇到需要重复做某件事情的情况。比如,你要写 100 遍“好好学习,天天向上”;或者计算从 1 加到 100 的和。如果没有循环语句,在编程里我们就得把相同的代码写很多遍,这不仅麻烦,还容易出错。而循环语句可以让我们只写一次代码,然后让计算机按照我们设定的规则重复执行,大大提高了编程的效率。
6.2 while 循环
基本语法 while 循环会在条件表达式为 true
时,不断地执行循环体里的代码块。其基本语法如下:
while (条件表达式) { // 循环体,当条件表达式为 true 时执行的代码块 }
只要条件表达式的值为 true
,循环体就会一直执行。每次执行完循环体后,会再次判断条件表达式的值,如果仍然为 true
,则继续执行循环体;如果为 false
,则跳出循环。
示例代码
#include <iostream> using namespace std; int main() { int i = 1; while (i <= 5) { cout << i << " "; i++; } cout << endl; return 0; }
在这个程序中,定义了一个变量 i
并初始化为 1。然后进入 while 循环,只要 i
小于等于 5,就会执行循环体里的代码,输出 i
的值,并将 i
的值加 1。当 i
的值变为 6 时,条件表达式 i <= 5
为 false
,循环结束。
6.3 do – while 循环
基本语法 do – while 循环和 while 循环类似,但它会先执行一次循环体,然后再判断条件表达式的值。其基本语法如下:
do { // 循环体,先执行一次的代码块 } while (条件表达式);
不管条件表达式的值一开始是 true
还是 false
,循环体都会至少执行一次。执行完循环体后,再判断条件表达式的值,如果为 true
,则继续执行循环体;如果为 false
,则跳出循环。
示例代码
#include <iostream> using namespace std; int main() { int i = 1; do { cout << i << " "; i++; } while (i <= 5); cout << endl; return 0; }
这个程序和上面 while 循环的示例功能相同,只是使用了 do – while 循环。即使 i
的初始值一开始就不满足条件,循环体也会先执行一次。
6.4 for 循环
基本语法 for 循环通常用于已知循环次数的情况,它把循环的初始化、条件判断和循环变量的更新都放在一个语句里。其基本语法如下:
for (初始化表达式; 条件表达式; 更新表达式) { // 循环体,满足条件时执行的代码块 }
初始化表达式在循环开始前执行一次,用于初始化循环变量;条件表达式在每次循环开始前进行判断,如果为 true
,则执行循环体;更新表达式在每次循环体执行完后执行,用于更新循环变量的值。
示例代码
#include <iostream> using namespace std; int main() { for (int i = 1; i <= 5; i++) { cout << i << " "; } cout << endl; return 0; }
在这个程序中,int i = 1
是初始化表达式,将循环变量 i
初始化为 1;i <= 5
是条件表达式,只要 i
小于等于 5,就会执行循环体;i++
是更新表达式,每次循环结束后将 i
的值加 1。
6.5 循环的嵌套
在一个循环的循环体里还可以再嵌套另一个循环,这就是循环的嵌套。常见的有双重循环,用于处理二维的数据,比如打印一个矩阵。
示例代码
#include <iostream> using namespace std; int main() { for (int i = 1; i <= 3; i++) { for (int j = 1; j <= 3; j++) { cout << "(" << i << ", " << j << ") "; } cout << endl; } return 0; }
在这个程序中,外层的 for 循环控制行数,内层的 for 循环控制列数。每次外层循环执行一次,内层循环会完整地执行一遍,从而打印出一个 3×3 的矩阵坐标。
6.6 break 和 continue 语句
- break 语句:用于跳出当前所在的循环,无论循环条件是否满足。
#include <iostream> using namespace std; int main() { for (int i = 1; i <= 10; i++) { if (i == 5) { break; } cout << i << " "; } cout << endl; return 0; }
在这个程序中,当 i
的值等于 5 时,执行 break
语句,跳出 for 循环,所以只输出 1 到 4。
- continue 语句:用于跳过当前循环体中剩余的代码,直接进入下一次循环。
#include <iostream> using namespace std; int main() { for (int i = 1; i <= 10; i++) { if (i == 5) { continue; } cout << i << " "; } cout << endl; return 0; }
在这个程序中,当 i
的值等于 5 时,执行 continue
语句,跳过本次循环中 cout << i << " ";
这行代码,直接进入下一次循环,所以输出结果中不包含 5。
6.7 课后小练习
- 编写一个程序,使用 while 循环计算从 1 加到 100 的和。
- 编写一个程序,使用 for 循环打印出九九乘法表。
通过这部分的学习,你已经掌握了 C++ 中的循环语句,它们能让你的程序轻松地处理需要重复执行的任务,使程序更加高效和强大。