首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【小雨学编程之C#】19.6 流程控制语句 while

本节继续学习流程控制语句,在学习之前,我们先展示一下利用本节内容可以完成的小程序:

检测用户输入的商品,并输出价格,直到用户输入exit结束程序。

模拟用户登陆,错误输入账户、密码满3次,程序结束。

看完例子,屏幕前的你是不是已经跃跃欲试了呢!

那么想完成上述内容,我们就需要接触一个新流程控制语句while,基础语法为

while(判断条件){

判断条件成立执行的内容

}

不过,看到语法感觉,这也没什么嘛,这不和if很像吗?

这可不一样,我们之前的if、switch都是分支型流程控制语句,是相对于程序从第一行一次性顺序执行到最后一行来说的。

分支型流程控制语句的特点是,当程序从第一行顺序开始执行,遇到某些情况的时候,越过某些代码,然后继续执行,从而产生了区别于一次性从头到尾执行的分支结构。

而我们的while语句,是循环语句。意思是说,只要while后面括号中的判断条件成立,就重复的执行大括号中判断条件成立执行的内容。

那么我们看例子:

在这个例子中,我们的目的是输出0到9这十个数字,while需要判断变量a小于10的状态,只要这个状态成立,就输出一次a,并且输出过后a自增1。

那么我们发现了两件事:

第一件:只要a小于10成立,程序就重复执行while大括号中的内容

第二件:因为每次执行while大括号中的内容的时候,a都自增1,从而导致每次循环while后面小括号中的a也变化

为了证明这一点,我们在while的这一行最前面双击,打一个断点

然后执行程序,不过这时候我们发现,程序不像刚才我们看到的那样,一次性执行完毕,而是分步执行了,现在我们看到的是第一次程序执行到while的情况:

我们看到第一次执行到while的时候a是等于0的,这个时候我们点击继续执行

当点击继续执行后,我们发现while小括号中的a的值已经等于1啦,这就和之前我们通过现象猜测的情况一致,每次执行完大括号中的a++后,while小括号中的a也是自增的,因为它们是同一个变量,只是在循环的运算,我们继续点击继续执行

直到a等于10后再次点击一次继续执行:

我们看到,下方变量检测的位置,对应的内容变成了灰色,也就是程序执行完毕,控制台也跳出来了。通过这个例子也充分的证明了我们的推断。

那么这里我们通过打断点,分步执行程序的方式也叫做调试代码,也就是通过分布执行程序来查看程序执行时,代码的执行流程和相关变量的变化。从而帮助我们了解并快速调试我们的代码。

while的循环执行我们明白了,那么我们会考虑一种情况,如果在程序循环过程中,遇到了某些情况,需要程序终止本次循环,直接跳转下次循环怎么办呢?这个就涉及到了一个关键字continue,这个关键字的意思就是,在while循环执行过程中,只要遇到continue,就终止本次循环,开始下次循环。

我们接着做一个例子:

这个例子中,我们的目的是输出0~10中的偶数,从代码中我们可以看到,我们用取余数的方式判断对应的数字是基数,当基数这件事情成立的时候,我们就结束本次循环开始下次循环。

那么我们看到,结束本次循环开始下次循环都有了,是否有在循环过程中,直接终止循环的情况呢?嘿~这个当然有,还记得之前我们讲switch的时候使用的break了吗,我们再来一个例子:

这个例子是我们小学的时候的一道经典算术题,计算从1加到100的和。

那么在这段代码中,我们发现,while后面的小括号中我们放的不是表达式,而直接是一个布尔值,这是怎么回事呢?

其实我们知道,while后面的小括号中的表达式的作用是,我们通过判断这个表达式是否成立来决定循环是否执行,那么是否成立对应的不就是true或者false嘛,只是这里我们如果直接放true的话,就是永远成立,也就是无限循环,我们正好可以利用无限循环来计算从1加到100,但是这计算过程,总要有结束的时候吧,所以在while后面大括号中,我们添加一个if判断,只要a在运算过程中大于100就直接终止循环,这样就达到我们的目的喽!

屏幕前的你学会了吗!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210317A0FE6E00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券