C语言while循环语句 do while语句 for循环语句

一、循环结构的思想及意义:
知道了循环结构,那么在生活中也一样,我们每天都在重复做着相同的事情,例如:吸气呼气的过程;又如夏天开电扇,电扇一圈一圈的转,这都是在重复。现在大家玩个游戏,一个人A来说一个人B来做,一个人A说命令“敬礼,礼毕”,另一人B做动作十遍;第一种思维那就是说一下命令就让B执行动作,B执行完动作后,A再继续说命令,B再继续做动作,同样的事情重复十遍。如果利用所学的知识,让你输出十遍“敬礼,礼毕”,你会怎么写程序呢?

/* 输出敬礼礼毕十遍 */
#include "stdio.h"
void main()
{
    printf("1.敬礼、礼毕\n");
    printf("2.敬礼、礼毕\n");
    printf("3.敬礼、礼毕\n");
    printf("4.敬礼、礼毕\n");
    printf("5.敬礼、礼毕\n");
    printf("6.敬礼、礼毕\n");
    printf("7.敬礼、礼毕\n");
    printf("8.敬礼、礼毕\n");
    printf("9.敬礼、礼毕\n");
    printf("10.敬礼、礼毕\n");    
}

那A要让B说一万遍呢,显然如果还是用上面的程序来写的话,那么今天你一个小时不用做别的了,你就在这里慢慢复制粘贴吧!所以肯定有好的办法:A应该对B说执行命令动作“敬礼、礼毕”十遍。同样的问题大家来看第二段程序代码:

/* 输出敬礼礼毕十遍 */
#include "stdio.h"
void main()
{
	int i;
	i=1;
    while(i<=10)
	{
printf("%d.敬礼、礼毕\n",i);
i=i+1;
	}   
}

二、while的基本格式
while的基本格式:(流程图如右图所示)
while(表达式)
{
语句1;
……
语句 n;
}
其中表达式代表了循环条件,整个复合语句为循环体。
while语句规范:
1:{和}自成一行
2:语句1—语句n自动缩进
while循环属于当型循环,也就是先判断表达式的值是否为真的(也可以理解为条件是否成立),若为真则循环,否则退出循环。
它的格式变形如下;
表达式1;
while(表达式2)
{
语句;
表达式3;
}
其中表达式1代表了程序循环前的初始值,表达式2代表了控制条件,表达式3代表了增量变化
拿输出1到100为例分析。
最初始的值(假设变量为i)应该是i=1;条件是i<101(或i<=100);语句是输出相应的变量值 printf(“%d ”,i);而表达式3应该是输出一个后进入下一个数,也就是i++;
所以它的代码也就很容易就出来了:

void main()
{
    int i;
    i=1;
    while(i<101)
{
  printf(“%d ”,i);
  i++;   
}
}

do—while循环语句
do–while语句
在循环中有当型循环,还有直到型循环。接下来我们就来学习下直到型循环。
一、do—while语句格式
1.do—while语句格式1
表达式1;
do
{
语句;
表达式3;
} while(表达式2);
其中表达式1代表了程序循环前的初始值,表达式2代表了控制条件,表达式3代表了增量变化
这种格式在程序中已经很少用了。主要应用于下种变形格式:
2.do—while语句格式变形
do
{
语句;
} while(条件表达式);
二、do-while语句的思想及意义
do英文翻译成中文是做的意思,那么从上面的结构我们也能看出,do语句后判断条件表达式,如果条件还表达式成立,再次执行语句,直到条件表达式不成立,往下继续执行。所以do—while的中心思想是至少执行一次循环语句。
三、do-while循环结构实例
下面我们一些操作实例来讲解循环结构的逻辑思维过程。
1.求1+2+3+4±—+100和是多少?
(1)步骤1,首先我们应该分析的是,我们要求一个数即和,那么和初值是几呢? sum=0
(2)sum+=1;
(3)sum+=2;
(4)sum+=3;
(5)假如我们如一个变量i来代表值的变化的话那么我们应该也能推算去,求和其实就是
(6)sum+=i;只是i要从1变化到100
(7)while代码参考代码如下

/*求1+2+3+---+100的和*/
#include "stdio.h"
void main()//求各
{
	//定义变量并初始化
	int i=1;
	int sum=0;
	while(i<=100)  //条件表达式
	{
		sum+=i;
		i+=1; //步长
	}	
	printf("和是%d",sum);
}

(8)do–while代码参考代码如下

/*求1+2+3+---+100的和*/
#include "stdio.h"
void main()//求各
{
	//定义变量并初始化
	int i=1;
	int sum=0;
	do
	{
		sum+=i;
		i+=1; //步长
	}	while(i<=100); //条件表达式
	printf("和是%d",sum);
}

2.输入qq的密码;输入正确则显示登录成功,否则可以一直输入密码直到对为至,假设密码为123456
(1)那么我们分析题目,应该是先输入后判断的一种循环方式,那么应该选择do—while语句
(2)程序中要求我们输入密码,密码可以变,所以要给密码定义成一个变量,我们假设int password;
(3)因为密码是输入的,所以没有初始值
(4)输入密码以后我们应该判断密码是否和默认密码相同
(5)相同则登录成功
(6)不相同则重新
(7)do–while代码参考代码如下

/*判断qq密码*/
#include "stdio.h"
void main()//登录
{
	//定义变量并初始化
	int password;
    do	
	{
		printf("请输入qq登录密码:");
		scanf("%d",&password);
	}while(password!=123456);  	//条件表达式
	printf("登录成功");
}

(8)do—while语句是可以被while()替换,其实循环之间的语句都可以相互替换,哪种方法更适合你,就选那种,也就是说一定要有一种是自己专长的。

(9)参考代码如下
/*登录*/
#include "stdio.h"
#include "stdlib.h"
void main()//登录
{
	//定义变量并初始化
	int password;
    while(1)
	{
		printf("请输入qq登录密码:");
		scanf("%d",&password);
		if(password==123456)
		{
			printf("登录成功");
			break;
			}
	}
	
}

3.while 与do—while的相同与不同总结?
(1)while 语句是先计算表达式的值,再执行循环体,do…while是执行完一次循环体,再计算表达式的值
(2)当表达式的值第一次为假时,while的循环体一次都不执行,do…while则执行一次循环体;
(3)当表达式的值为真时,两者无区别
(4)在不确定条件次数的情况下,程序一般用while比较多

for循环语句
for 循环为当型循环。for循环最容易实现计数控制循环方法。for循环的使用最为灵活,且适合应用在循环次数确定的情况下。
for循环的思想是,先分析清楚循环的初始值,循环的控制条件,循环变量的步长变化,然后直接把语句再写到for的循环体里即可,这样可以让问题想的很清楚,流程也很清楚。
二、for循环语句的应用
for语句是c语言所提供的功能更强,使用更广泛的一种循环语句。
1.for语句的一般格式
(1)第1种情况
for(表达式1;表达式2;表达式3)
语句;
(2)第2种情况
for(表达式1;表达式2;表达式3)
{
语句块;
}
2.for语句的注意事项
(1)各表达式之间分号不能省略
(2)表达式1与表达式2与表达式3均可省略,一般是不省略的。
①当表达式1省略时,相当于省去了为循环变量赋初值,此时应在for语句之前给循环变量赋初值
②当表达式2省略时,表示不判断循环条件,也就是认为表达式2始终为真, 这时应在循环体内设法结束循环,否则将成为死循环
③当表达式3省略时,即省去修改循环变量的值,但此时应在循环体内设法结束循环
(3)虽然说表达式可以省略,但是在使用for时,还是要正常使用的,也就是该有的都有。
三、for的逻辑思维过程
for语句和while语句一样,它的思想是在做循环之前,也是先有一个初值表达式1,然后判断条件表达式2是否成立,如果成立就执行{}里的语句然后跳转到表达式3,表达式3再跳转到表达式2,再次判断表达式2,如若成立再次,执行{}里的语句语句然后跳转到表达式3,表达式3再跳转到表达式2,如果成立就再重复执行,如果不成立就退出循环。
for的流程图走向和while语句一模一样,但是for的思维过程,可以直接先分析从第一次开始执行,执行条件是什么,步长是多少,然后执行的语句是什么,套用for的结构即可。

猜你喜欢

转载自blog.csdn.net/SqrsCbrOnly1/article/details/91374659