1.6 C语言的控制流之二:while循环和for循环、do-while循环

一、while循环和for循环

1)while循环

1.基本框架

while (判定条件)
{						//花括号里面的是循环体
	表达式1;				
	表达式2;
	...					// 表达式是循环的内容
}

2.处理流程

判定条件 -> 真 -> 执行循环体中的所有表达式 -> 判定条件 -> 假 -> 跳出循环

3.死循环

死循环就是判定条件恒为真,无法通过判断判定条件为假来跳出循环。

while(1)
{
   xxxx;   //一直被执行
}

4.省略{}情况

while(1)
   xxxx;  //紧跟在while(1)语句的表达式就是循环体的内容。
   yyyy;  //不属于循环体的内容

等价于

while(1)
{
   xxxx;
}
yyyy;
while(1);  //有分号,代表是有循环体,但是循环体中没有任何的内容  -> 空循环
  xxxx;
  yyyy;
等价于
while(1)
{

}
xxxx;
yyyy;

结论:

  1. 当循环体中表达式大于2个时,复合语句{}不能省略。
  2. 当循环体中表达式只有1个时,则复合语句{}可以省略的!
    例:
/* 测试while循环 */
#include<stdio.h>

int main(int argc, char *argv[])
{

        char c;
        printf("");

        while(c != EOF)			// EOF为文本结束符 
        {
                scanf("%c", &c);
                printf("%c", c);
        }

        return 0 ;
/mnt/hgfs/1.22 Ubuntu-14.4share/C/day02 --> :./while1
5
5
/mnt/hgfs/1.22 Ubuntu-14.4share/C/day02 --> :./while1
44984313
44984313

2)for循环

1.基本框架

for(初始化控制变量语句;判定条件;变量操作)		// 里面的语句不一定要填,可以空白。
{  						// 循环体
   需要循环地执行的语句;
}

等价于下列的wiile语句:

初始化控制变量语句;

while (判定条件)
{
	需要循环地执行的语句;
	变量操作;
}

2.处理流程

1
for(2;3;4)
{
    5
}
6

1->2.初始化语句->3.判定条件->真->5.执行循环->4.变量操作->3.判定条件->假->6 (初始化语句只会执行一次)

3.死循环

for( ; ;);  //	等价于 while(1);

等价于            
for(;;)  	*		等价于  while(1)
{			*		{
			*
}			*		}

4.省略{}情况

for(;;)
  xxx;   //属于循环体的内容 
  yyy;   //不属于循环体的内容

等价于
for(;;)
{
  xxx;
}
yyy;

例:

/* 测试for语句	*/
#include "stdio.h"

int main(int agrc, char *argv[])
{
        char c;
        printf("please input:\n");

        for( ; ;)
        {
                scanf("%c", &c);
                printf("%c", c);
        }

        return 0;
}/mnt/hgfs/1.22 Ubuntu-14.4share/C/day02 --> :./for1
please input:
13123456
13123456

二、do-while循环

1.基本框架

do{  // 循环体
	需要循环的语句;
	...
}while(判定条件);   

【注意】while后面没有分号是语法出错。

2.处理流程

先执行一次循环体 -> 判定条件 -> 真 -> 执行循环体内容 -> 判定条件 -> 假 -> 跳出循环

3.死循环

do{

}while(1);

4.省略{}写法

do
  xxxx;
while(1);

等价于

do{
  xxxx;
}while(1);

例:

#include<stdio.h>

int main(int argc, char *argv[])
{

        char c;
        printf("please input:\n");

        do
        {
                scanf("%c", &c);
                printf("%c", c);
        }while(1);

        return 0 ;
/mnt/hgfs/1.22 Ubuntu-14.4share/C/day02 --> :./while1
dwadsafa
dwadsafa

【注意】do-while语句一定会执行一条循环体中的需要循环的语句;
例:

#include<stdio.h>

int main(int argc, char *argv[])
{

        char c;
        printf("please input:\n");

        do
        {
                scanf("%c", &c);
                printf("%c", c);
        }while(0);

        return 0 ;
}
/mnt/hgfs/1.22 Ubuntu-14.4share/C/day02 --> :./do_while3
please input:
090
0				//一定会执行一次需要的循环语句;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值