栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言——while循环

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言——while循环

 while 循环
我们已经掌握了if语句,当条件满足的情况下,if语句后的语句执行,否则不执行,但是这个语句只会执行一次,但是我们发现生活中很多的实际例子是同一件事情我们需要完成很多次。那我们怎么做呢?C语言中给我们引入了while语句,可以实现循环。
 
 
 while 语法表达式
  while (表达式)
        循环语句;
 
 在while循环中,break用于永久的终止循环
 continue的作用是跳过本次循环continue后面的代码,直接去判断部分,看是否进行下一次循环。例如下图,就陷入了死循环,没有下面的i ++,返回了上面的判断部分。

 


 

 判断下面代码是什么意思?

 

gerchar 获取一个字符 read a character from a stream (getc ,getwc),or get a character from stdin
 putchar 输出一个字符,和printf效果差不多,但是getchar 和 putchar更匹配一点
 stdin 标准输入—键盘
 EOF -end of file -文件结束标志


 这个代码又有什么意义呢?


 举个例子



 这里用scanf_s的同学注意,scanf_s要求在输入char或字符串数组时,要添加最大长度作为参数,所以应该是scanf_s("%s",password,20);


 像 getchar scanf 这样的输入函数,不是直接从键盘上拿的数据,是从中间的缓冲区拿上面的代码,没有输入Y/N,就直接确认失败了,为什么呢??
 因为先是scanf拿数据,假如getchar不拿走n呢,这我们输入了123456,123456到了缓冲区(因为123456是一个字符串,后面默认会有一个n),再按一下回车,scanf就会来缓冲区拿数据,拿走了123456,这时候,缓冲区里面就剩下一个n了,然后getchar来到了缓冲区,发现缓冲区里面有一个n,就直接拿了并赋予了ch,所以并没有让我们输入y/n让getchar拿走。就会判定ch != y,直接走了else。
 

那应该怎么办呢??如何让时候我们需要清理缓冲区,在 int ch = gerchar();上面再写一个getchar,把n拿走后,缓冲区不就是空的了嘛,这样就可以让我们输入了。但是这样只能取走一个字符,如果输入的密码是123456(空格)abcdefg,getchar就拿不走后面的字符,就还是会出现没有判定就确认密码失败了,这时候要用到上图中第二个方法

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/604572.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号