while循环、do while循环、for循环、break终止、continue结束
环境: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]# ./while5050
实际应用:判断年份时平年还是闰年
#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可退出程序请输入一个年份:为平年请输入一个年份:-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]# ./dowhile15050
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]# ./for5050
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]# ./break7788991233445566-1n = 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]# ./continueplease enter score:44Fail: 44.00please enter score:55Fail: 55.00please enter score:60please enter score:70please enter score:90n = 3, average = 73.33