一、while
语句
while
语句个别模式为:
while (表达式) 语句
其中表达式
为循环条件,语句
为循环体。while
的特点为:先判断循环条件,后执行循环体。
#include <stdio.h>int main(){ int n, result = 1; scanf("%d", &n); while (n > 1) { result = result * n; n--; } printf("%d", result); return 0;}
二、do...while
语句
do...while
语句的个别模式为:
do 语句while (表达式)
该语句的特点是:先执行循环体,后判断循环条件。
#include <stdio.h>int main(){ int n, result = 1; scanf("%d", &n); do { result = result * n; n--; } while (n > 0); printf("%d", result); return 0;}
三、for
语句
相比while
语句和do...while...
语句,for
语句更加灵便,不仅能够用于循环次数曾经确定的状况,也能够用于循环次数不确定而只给出了循环完结条件的状况。其个别模式为:
for (表达式1; 表达式2; 表达式3) 语句
其中三个表达式的作用顺次为:
表达式1
:设置初始条件,只执行一次,能够为多个变量设置初始值,可省略。表达式2
:循环条件,可省略。表达式3
:循环的调整,执行完循环体后才执行,可省略。
#include <stdio.h>int main(){ int n, result = 1; scanf("%d", &n); for (; n > 0; n--) result = result * n; printf("%d", result); return 0;}
C99 规范容许在表达式1
中定义变量并初赋值,但定义变量的作用域仅限于for
循环内,在循环外不可调用该变量。
3 种循环语句都能够互相嵌套。
四、扭转循环执行状态
1. break
语句
break
语句能够间接跳出循环体,提前结束循环,接着执行循环上面的语句。该语句只能用于循环语句和switch
语句中。
#include <stdio.h>int main(){ int n, result = 1; scanf("%d", &n); while (1) { result = result * n; n--; if (n == 0) break; } printf("%d", result); return 0;}
2. continue
语句
continue
语句用于完结此次循环而不终止整个循环,而是接着执行下一次循环的操作。
#include <stdio.h>#define M 100int main(){ int n; for (n = 1; n < 100; n++) { if (n % 7 != 0) continue; printf("%d\t", n); } return 0;}
Reference:
谭浩强《C程序设计(第五版)》