while循环的特点为先判断后执行,即先判断表达式的值后执行循环体。
循环体可以是单条语句,也可以是复合语句。
写一个单条语句的while循环。
#include <stdio.h>
int main() {
int n = 0;
while (n <= 100)
n++;
printf("%d", n);
return 0;
}
输出结果。
写一个复合语句的while循环。
#include <stdio.h>
int main() {
int n = 0, sum = 0;
while (n <= 100) {
sum = sum + n;
n++;
if (n > 95)
printf("n=%d\n", n);
}
printf("sum=%d,n=%d", sum, n);
return 0;
}
输出结果。
do...while循环的特点为先执行后判断,即先执行循环体一次,在判断表达式的值,确定是否再继续执行循环体,因此do...while语句的循环至少被执行一次。
写一个简单的do...while循环。
#include <stdio.h>
int main() {
int n = 0, sum = 0;
do {
sum = sum + n;
n++;
} while (n <= 100);
printf("sum=%d,n=%d", sum, n);
return 0;
}
输出结果。
for语句的基本形式:
for (循环变量赋初值;循环条件;循环变量更新)
循环体
即for语句的表达式1为循环变量赋初值,表达式2为循环条件,表达式3为循环变量值更新。
写一个简单的for循环。
#include <stdio.h>
int main() {
int n, sum = 0;
for (n = 0; n <= 100; n++)
sum += n;
printf("sum=%d,n=%d", sum, n);
return 0;
}
输出结果。
for语句中的3个表达式可以部分或全部省略。
省略表达式1,相当于省略了循环初始值条件,应在for语句之前给循环变量赋初值。
int n=0,sum=0;
for (;n<100;n++)
sum+=n;
省略表达式2,即不判断循环条件,循环将无休止地进行下去,也就是认为表达式2始终为真,循环成为无限循环。
for (n=0;;n++)
sum+=n;
等价于
int n = 0, sum = 0;
while(1)
{
sum+=n;
n++;
}
省略表达式3,则必须再循环体中设法保证循环能正常结束,即有使循环结束的语句。
for (n = 0; n <= 100;) {
sum += n;
n++;
}
3个语句全部省略,但两个分号必须保留。即:
for (;;)
此时的循环成为无限循环。
在循环体内使用break语句、continue语句和goto语句来改变循环状态。
下面写一些简单程序理解。
写一个含有break语句的简单循环程序。
#include <stdio.h>
int main() {
int n, sum = 0;
for (n = 0;;) {
sum += n;
n++;
if (n >= 101)
break;
}
printf("sum=%d,n=%d", sum, n);
return 0;
}
输出结果。
写一个含有continue语句的简单循环程序。
#include <stdio.h>
int main() {
int n, sum = 0;
for (n = 0; n < 100;) {
n++;
if (1)
continue;
sum += n;
}
printf("sum=%d,n=%d", sum, n);
return 0;
}
输出结果。
写一个含有goto语句的简单循环程序。
#include <stdio.h>
int main() {
int n = 0, sum = 0;
for (;;) {
goto act_end;
sum += n;
n++;
}
act_end:
printf("End!\n");
printf("sum=%d,n=%d", sum, n);
return 0;
}
输出结果。