C语言之while循环和for循环

C语言之while循环和for循环

一、在前面的if语句中发现我们不能够连续输入成绩,我们可以通过while循环来实现连续的成绩输入。
实例1:

#include 

int main()
{
	int score;
	int num = 3;  // 班里有3个学生
    
    while(num > 0)
    {
		printf("请输入成绩:\n");
		scanf("%d",&score);
		
		if(score < 0 || score > 100)
		{
			printf("您输入的数据不规范\n");
		} else if(score >= 60) 
			{
				printf("考试通过\n");
			} else {
						printf("成绩不及格\n");
				}
                
        num = num - 1;
    }
    
	return 0;
}

假设班里有3个学生,当while执行1次时,num - 1,若num满足while的条件,则继续循环,否则循环结束。
注:= 是赋值运算符,== 是等于
C语言之while循环和for循环_第1张图片
while语句创建了一个循环,重复执行直到测试表达式为假或0。while语句是一种入口条件循环,也就是说,在执行多次循环之前已决定是否执行循环。

二、for语句
for语句使用3个表达式控制循环过程,分别用分号隔开。initialize表达式在执行for语句之前只执行一次;然后对test表达式求值,如果表达式为真(或非零),执行循环一次;接着对updata表达式求值,并再次检查test表达式。for语句是一种入口条件循环,即在执行循环之前就决定了是否执行循环。因此,for循环可能一次都不执行。statement部分可以是一条简单语句或复合语句。

形式:
	for(initialize;test;update)
		statement
	在test为假或0之前,重复执行statement部分

实例2

#include 

int main()
{
	int score;
	int i; 
    
    for(i=0;i<3;i++)
    {
		printf("请输入成绩:\n");
		scanf("%d",&score);
		
		if(score < 0 || score > 100)
		{
			printf("您输入的数据不规范\n");
		} else if(score >= 60) 
			{
				printf("考试通过\n");
			} else {
						printf("成绩不及格\n");
				}
    }
    
	return 0;
}

编译运行结果如下所示:
C语言之while循环和for循环_第2张图片
当 i < 3 时,满足 for( ; ; ) 中第二个表达式时,不执行 for() 后面代码。

3.出口条件循环:do while
while 循环和 for 循环都是入口条件循环,即在循环的每次迭代之前检查测试条件,所以有可能根本不执行循环体中的内容。C语言还有出口条件循环,即在循环的每次迭代之后检查测试条件,这保证了至少执行循环体中的内容一次,这种循环被称为 do while循环。
实例3:

#include 

int main()
{
	int score;
	int i = 0; 
    
	do
    {
		printf("请输入成绩:\n");
		scanf("%d",&score);
        
		if(score < 0 || score > 100)
		{
			printf("您输入的数据不规范\n");
		} else if(score >= 60) 
			{
				printf("考试通过\n");
			} else {
						printf("成绩不及格\n");
				}
                
		i++;
                
    } while(i<3);

	return 0;
}

C语言之while循环和for循环_第3张图片
实例4:

#include 

int main()
{
	int score;
	int i = 3; 
    
	do
    {
		printf("请输入成绩:\n");
		scanf("%d",&score);
        
		if(score < 0 || score > 100)
		{
			printf("您输入的数据不规范\n");
		} else if(score >= 60) 
			{
				printf("考试通过\n");
			} else {
						printf("成绩不及格\n");
				}
                
		i++;
                
    } while(i<3);

	return 0;
}

如果 i = 3 时,运行结果如下:虽然不满足while()中的条件,但测试条件还是被执行了。
C语言之while循环和for循环_第4张图片
do while 循环在执行完循环体后才执行测试条件,所以至少执行循环体一次;而 for 循环或 while 循环都是在执行循环体之前先测试条件。do while 循环适用于那些至少要迭代一次的循环。

你可能感兴趣的:(C语言,c语言)