环境:CentOS7; 循环条件:①循环体;②循环结束条件; 特点:计算机只处理有条件的循环(有效性、确定性和有穷性)。 while循环(先判断再循环,内嵌语句) 例子1:1+2+3+…+100 #i
环境:CentOS7;
循环条件:①循环体;②循环结束条件;
特点:计算机只处理有条件的循环(有效性、确定性和有穷性)。
- while循环(先判断再循环,内嵌语句)
例子1:1+2+3+…+100
#include <stdio.h>
int main() {
int i, sum = 0;
i = 1;
while (i <= 100) {
sum += i;
i++;
}
printf ("%d\n", sum);
return 0;
}
[root@chenshuyi c]# gcc -o while while.c
[root@chenshuyi c]# ./while
5050
实际应用:判断年份时平年还是闰年
#include<stdio.h>
int main(){
int year;
printf("输入-1可退出程序\n");
while(1){
printf("请输入一个年份:");
scanf("%d",&year);
if(year == -1){
break;
}
if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)){
printf("%d为平年\n",year);
}
else{
printf("%d为闰年\n",year);
}
}
return 0;
}
~
[root@chenshuyi c]# ./while3
输入-1可退出程序
请输入一个年份:2012
2012为平年
请输入一个年份:-1
- do while(先循环再判断)
例子1:1+2+3+…+100
#include <stdio.h>
int main() {
int i, sum = 0;
i = 1;
do {
sum += i;
i++;
}
while (i <= 100);
printf ("%d\n", sum);
return 0;
}
[root@chenshuyi c]# gcc -o dowhile1 dowhile1.c
[root@chenshuyi c]# ./dowhile1
5050
- for循环(循环变量赋初值;循环条件;循环变量增值)
#include <stdio.h>
int main() {
int i, sum = 0;
for (i = 1; i <= 100; i++)
{
sum += i;
}
printf("%d\n", sum);
return 0;
}
[root@chenshuyi c]# gcc -o for for.c
[root@chenshuyi c]# ./for
5050
- break语句(提前结束循环,终止整一个)
例子:现班不超过30人,使程序统计出该班的平均成绩,收到负数的时候结束循环。
[root@chenshuyi c]# cat break.c
#include <stdio.h>
int main() {
float score, sum = 0, average;
int i, n;
for (i = 1; i < 31; i ++) {
scanf ("%f", &score);
if (score < 0) break;
sum = sum + score;
}
n = i - 1;
average = sum/n;
printf ("n = %d, average = %7.2f\n", n, average);
return 0;
}
[root@chenshuyi c]# ./break
77
88
99
12
33
44
55
66
-1
n = 8, average = 59.25
#flloat score定义一个浮点型变量score
#%7.2f打印小数点前7位(不足七位补前置0);小数点后两位(不足两位补0)。
- continue语句(提前结束本次循环,只是终止本次循环非整个)
PS:结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否1执行循环的判断。
例子:输入一个班全体同学的成绩,把不及格的学生成绩输出,并求及格学生的平均成绩。
#include <stdio.h>
int main() {
float score, sum = 0, average;
int i, n = 0;
for (i = 1; i < 6; i ++) { #假设不及格的人有5个
printf ("please enter score:");
scanf ("%f", &score);
if (score < 60) { #如果不及格
printf ("Fail:%7.2f\n", score); #结束本次循环,输出不及格的成绩
continue;
}
sum = sum + score;
n = n + 1; #统计不及格的人数
}
average = sum/n; #及格的平均成绩
printf ("\n n = %d, average = %7.2f\n", n, average); #输出及格学生人数以及平均分
return 0;
}
[root@chenshuyi c]# gcc -o continue continue.c
[root@chenshuyi c]# ./continue
please enter score:44
Fail: 44.00
please enter score:55
Fail: 55.00
please enter score:60
please enter score:70
please enter score:90
n = 3, average = 73.33