while循环
语法:
while ( 条件 ) {
满足条件的代码——循环体
}
条件不满足后,继续执行的代码
语义:当条件满足时,不断地重复循环体内的语句。
注意
- 循环体中要有改变条件的机会,否则会陷入死循环。
- while循环在执行之前判断是否继续循环,所以可能循环体一次也没有被执行。
do-while循环
语法:
do {
循环体
} while( 循环的条件 );
语义:在进入循环的时候不做检查,而是在执行完一轮循环体的代码后,再来检查循环的条件是否满足,如果满足则继续下一轮循环,不满足则结束循环。
注意
- do-while循环在执行之后判断是否继续循环,所以循环体至少执行一次。
- do-while在循环条件编写完之后是以分号结尾,否则编译出错。
for循环
语法:
for (初始动作 ; 循环继续的条件; 每轮的动作) {
循环体
}
语义:for循环为计数器循环;设定一个计数器并初始化它,然后在计数器到达某个值之前,重复执行循环体,而每执行一轮循环,计数器的值以一定的步幅进行调整。
注意
- for循环的括号中有两个分号。
- for循环中计数器最终的值为条件值或条件值+步幅。
- for循环与while循环是等价的。
for (i = 0; i < 5; i++) {
循环体;
}
i执行完for循环之后,i = 5
for (i = 0; i <= 5; i++) {
循环体;
}
i执行完for循环之后,i = 6
选择使用哪种循环的小技巧
- 如果有固定次数,用for
- 如果必须执行一次,用do-while
- 其他情况用while
- 循环里面可以执行循环——循环嵌套
循环控制
break
跳出本层循环
#include <stdio.h>
int main() {
int i;
for (i =0; i<10; i++) {
if (i == 5) {
break;
}
printf("%d-", i); // 0-1-2-3-4-
}
printf("\n");
printf("%d", i); // 5
}
continue
跳出本轮循环,进入下一轮循环
#include <stdio.h>
int main() {
int i;
for (i =0; i<10; i++) {
if (i == 5) {
continue;
}
printf("%d-", i); // 0-1-2-3-4-6-7-8-9-
}
printf("\n");
printf("%d", i); // 10
}
goto
语法:
goto 标记;
语义:表示程序到标记处进行执行。
使用场景:尽量不使用goto
语句,在跳出多重循环时可以使用goto
语句。