循环语句是三种基本语句中最重要的,也是相比有一定难度的。
如果一段动作要多次执行,那么就要知道执行多少次或者满足什么条件之后结束循环。这里我们用一个循环控制量 i 来表示(多层循环可能还会使用 j、k 等)。
C++ 中,通常有如下三种循环结构:for 语句、while 语句、do while 语句
一、for 语句
基本结构:
for(int i = 1; i <= n; i ++){
//循环执行的语句
}
- int i = 1 为定义循环控制量 i 且声明其初始值为 1;
- i <= n 为继续执行循环的条件,即如果 i 满足小于等于 n,那么继续循环;如果 i 大于 n,那么结束循环;
- i ++ 循环增量,每进行一次循环,循环控制量 i 的值要发生改变,不然会陷入死循环。
例如:
#include<iostream>
using namespace std;
int main(){
int a = 0, n = 100;
for(int i = 1; i <= n; i ++){
a ++;
}
printf("a = %d", a);
return 0;
}
a = 100
注意.当需要循环执行的语句只有一句时,大括号{}可以省略:
for(int i = 1; i <= n; i ++){
a ++;
}
等同于
for(int i = 1; i <= n; i ++) a ++;
图例记忆:
二、while 语句
while 语句同样需要循环控制量、执行循环条件和循环增量三要素,但是其位置较为特殊。
int i = 1;
while(i <= n){
//循环执行的语句
i ++;
}
- 循环控制量的定义与声明在外部;
- while()的括号中仅有执行循环条件;
- 循环增量通常要在{}之中。
注意.while 语句较常用的情形,当需要循环 m 次,且该 m 的值后续不会使用,则:
int m = 10;
while(m --){
//循环执行的语句
}
根据 0 即假,非 0 即真的规则,
当 m -- 语句执行 m 遍时,m 的值会累减为 0,
此时执行循环条件为假跳出循环,
此时 m -- 既作为了执行循环条件又作为了循环增量。
三、do while 语句
do while 语句与while 语句类似,执行循环条件在while()的括号中,
但是while 语句是满足执行循环条件才会执行,
do while 语句是先执行一次,再判断是否满足执行循环条件。
int i = 1;
do{
//循环执行的语句
i ++;
}while(i <= n)
即 do while 语句至少会执行一次、while 语句不一定执行。
四、总结
三种循环语句结构均有自己的使用方法:
- 当需要循环控制量累加或者循环执行的语句中需要循环控制量时,通常使用for 语句;
- 当面对需要循环 m 次,且该 m 的值后续不会使用的情况,while 语句更加方便;
- do while 语句使用相对较少。