Arzie100 发表于 2022-5-11 15:33

C语言之while循环和for循环

C语言之while循环和for循环

一、在前面的if语句中发现我们不能够连续输入成绩,我们可以通过while循环来实现连续的成绩输入。
实例1:
#include<stdio.h>intmain(){int score;int num =3;// 班里有3个学生while(num >0){printf("请输入成绩:\n");scanf("%d",&score);if(score <0|| score >100){printf("您输入的数据不规范\n");}elseif(score >=60){printf("考试通过\n");}else{printf("成绩不及格\n");}
               
      num = num -1;}return0;}假设班里有3个学生,当while执行1次时,num - 1,若num满足while的条件,则继续循环,否则循环结束。
注:= 是赋值运算符,== 是等于


while语句创建了一个循环,重复执行直到测试表达式为假或0。while语句是一种入口条件循环,也就是说,在执行多次循环之前已决定是否执行循环。
二、for语句
for语句使用3个表达式控制循环过程,分别用分号隔开。initialize表达式在执行for语句之前只执行一次;然后对test表达式求值,如果表达式为真(或非零),执行循环一次;接着对updata表达式求值,并再次检查test表达式。for语句是一种入口条件循环,即在执行循环之前就决定了是否执行循环。因此,for循环可能一次都不执行。statement部分可以是一条简单语句或复合语句。
形式:
        for(initialize;test;update)
                statement
        在test为假或0之前,重复执行statement部分实例2
#include<stdio.h>intmain(){int score;int i;for(i=0;i<3;i++){printf("请输入成绩:\n");scanf("%d",&score);if(score <0|| score >100){printf("您输入的数据不规范\n");}elseif(score >=60){printf("考试通过\n");}else{printf("成绩不及格\n");}}return0;}编译运行结果如下所示:


当 i < 3 时,满足 for( ; ; ) 中第二个表达式时,不执行 for() 后面代码。
3.出口条件循环:do while
while 循环和 for 循环都是入口条件循环,即在循环的每次迭代之前检查测试条件,所以有可能根本不执行循环体中的内容。C语言还有出口条件循环,即在循环的每次迭代之后检查测试条件,这保证了至少执行循环体中的内容一次,这种循环被称为 do while循环。
实例3:
#include<stdio.h>intmain(){int score;int i =0;do{printf("请输入成绩:\n");scanf("%d",&score);if(score <0|| score >100){printf("您输入的数据不规范\n");}elseif(score >=60){printf("考试通过\n");}else{printf("成绩不及格\n");}
               
                i++;}while(i<3);return0;}
实例4:
#include<stdio.h>intmain(){int score;int i =3;do{printf("请输入成绩:\n");scanf("%d",&score);if(score <0|| score >100){printf("您输入的数据不规范\n");}elseif(score >=60){printf("考试通过\n");}else{printf("成绩不及格\n");}
               
                i++;}while(i<3);return0;}如果 i = 3 时,运行结果如下:虽然不满足while()中的条件,但测试条件还是被执行了。


do while 循环在执行完循环体后才执行测试条件,所以至少执行循环体一次;而 for 循环或 while 循环都是在执行循环体之前先测试条件。do while 循环适用于那些至少要迭代一次的循环。
页: [1]
查看完整版本: C语言之while循环和for循环