【C语言初阶】分支和循环语句Ⅱ

 

c256d976b04f4503b81b98e32949f366.png

一、while语句

ad529a546a354e6f9d91954bec1739c1.jpg

在while语句中遇到接下来情况,语句会停止

1.当i不再满足while括号后面的条件时

2.程序执行过程中遇到break(和switch一样)

while循环中的break是用于永久的终止循环,continue跳过本次循环后面的代码,直接去判断部分,进行下一次循环的判断。

a8c5e8586bb04e2c956f85a85663f2a2.jpg

ctrl z就是让我们的getchar返回一个EOF

EOF是个整数,接收他返回的时候最好用个整形接收。所以返回值类型用int。

32ae96a743a244f6b50461a973c6fd75.jpg

在运行的时候,输入a,打印的结果将会自动换行,原因就是在输入a之后,按回车,回车就相当于是" \n ",而其又相当于换行。

9c2d509d5a984329b189afdcd316cdc7.jpg

这个错误是说明:已经打开了一个可执行程序!!!只要关掉就可以了 

while语句的应用

33f5b07a3a824c6089662a92762ebd93.jpg

输入缓冲区里面本来有" abcdef\n " 被scanf 拿走了abcdef,被getchar拿走了剩下的"\n",由于被getchar拿走的不是Y所以程序自然认为密码是错误的。

ff931d5751b3440ca43bc735f5b4b3b8.jpg

如果要解决上面的问题,让程序员确认密码之后再输入结果。就需要在程序中间添上上图当中的画圈的部分。这样的话,"\n" 就被添上的getchar拿走了。所以在后面进行运行的时候,就很正常了。

虽然这种解决问题的方法很好用,但是并不适用于所有的情况。比如当输入"abcdef defghi"

时,将会再次出现上面的问题。因为scanf拿走了abcdef,而getchar拿走了空格,所以就又出现了上面的问题。

附:"不等于"是" !="

3f87c456babb4b32895a57e8943c5c4e.jpg

添上上面图中画圈的部分,就可以解决上面的问题了

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值