C语言中的while循环和do while循环

循环是C语言中一种比较重要且常用的结构。C语言有3种循环,for、while、do while,本篇文章主要介绍while 和do while 两种循环的用法。

while循环

while循环的通用形式如下:

while(expression)
statement;

其中,statement部分可以是一个简单语句后面分号结尾,也可以是花括号括起来的复合语句。
expression是while循环的条件,主要是关系表达式,只有当expression的值为真,才会执行下面的statement,否则会跳过while循环。在expression的值为假之前,循环的判断和执行一直重复进行。每次循环都被称为一次迭代。
在这里插入图片描述
在构建while循环时,要注意让测试表达式的值有变化,表达式最终要为假。否则循环就不会终止(可以使用continue和break)。

int i=1;
while (i < 5printf("hello world!");

如上面的代码运行之后会打印无数次的hello world! 因为循环中的i 值一直为1,没有发生改变,所以while循环的条件判断一直为真,程序一直运行。我们只需要每一次循环结束前改变 i 的取值大小就可以了。直接看下面的代码:

int i =1while (i<5{
printf("hello world!");
i += 1;
}

while 语句是一种入口条件循环,也就是说,在执行多次循环之前已决定是否执行循环,因此,循环有可能不被执行。举个例子:

int i= 10while (i<5)
printf("循环执行")

还有要注意的一点是:即使while语句本身使用复合语句,在语句构成上,它也是一条单独的语句。该语句从while开始执行,到第一个分号结束。所以要注意放置分号的位置。如下面的代码:

int i = 0while (i++ <3;
printf("i = %d",i);

代码运行的结果为:

i = 4

仔细看上面的代码会发现while循环条件判断后面有一个分号,所以下面的printf 语句不是循环体的一部分。i 的值每次迭代完后会增加1,直到 i = 4 不小于3,接着执行下面的代码,也就是printf 语句只打印一次。循环中的条件表达式为先比较 i 是否小于3,是的话 i 加1 ,不是的话循环结束。

这种测试条件后面的单独分号是空语句,它还有一个妙用,假如你想跳过输入到达第一个既不是空白字符也不是数字的位置,你可以这样写:

while (scanf("%d",&num)==1)
;

只要scanf()读取一个整数,就会返回1,循环继续执行。看不懂的看博主的上一篇博客里面scanf 的工作原理。

do while 循环

do while 循环的通用形式:

do 
	statement
while (expression);

statement可以是一条简单语句,也可以是花括号括起来的复合语句;expression是循环的条件,主要是关系表达式。

在这里插入图片描述
do while 语句是一种出口条件循环,即在执行完循环体后才根据测试条件决定是否再次执行循环,该循环至少执行一次。举个例子:
在这里插入图片描述在这里插入图片描述
通过运行结果我们可以看出即使判断条件为假,循环体,也就是 printf() 语句依然执行了一次。

在用 do while 时要避免下面这种情况:

do 
{
  询问用户是否继续其它行为
}while (回答是yes);

这样的结构导致用户在回答 “no” 之后,仍然执行“其它行为”一次了,因为 do while 是先执行一次循环体之后再判断条件的。

以上就是我今天要分享的全部内容啦,写得不好的地方希望大家多多包涵,如果文章内容有错误,希望各位大佬指正!

  • 45
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值