C语言中,循环分为while 循环,do while 循环,for 循环
while循环
可以理解为死循环,while后循环的可以不止一个语句,可能是一个代码块
想打印1-10的话:
break 在循环中充当终止该循环的作用
当 i 到5是满足 if 循环条件,break ,代码直接跳到 return 0,结束代码
continue 在while循环中作用是跳过本次循环continue后面的代码,直接去while循环的判断部分,看是否进行下一次
当 i 等于 5 时,continue,跳过printf和i++,直接判断 i<=10,再次进入if判断, 成立,继续continue,并最终陷入死循环(光标一直闪烁说明代码依然在执行)
//EOF -- end of file 文件结束标志
//getchar()输入一个字符,putchar()输出一个代码
ctrl+z 默认为读取结束
应用场景:getchar()和scanf()都可以接收键盘的字符,但scanf()只能读取除\n,空格之类的的字符,而getchar()所有输入的都会接收
#include<stdio.h>
int main()
{
char password[20] = {0};
printf("请输入密码:");
scanf_s("%19s",password,sizeof(password)-1);
printf("是否确认密码(Y/N):");
int tmp = 0;
while((tmp = getchar()) != '\n' && tmp != EOF)
{
;
}
int ch = getchar();
if (ch == 'Y');
{
printf("确认成功");
}
else
{
printf("确认失败");
}
return 0;
}
添加一个getchar()的while循环将缓冲区的字符全部提取走,当输入123456(空格)qwerr\n时,scanf()只会提取123456,后面的不提取,依然保留在缓冲区,不加while循环,则getchar()直接将缓冲区的(空格)qwerr\n全部接受,导致直接确认失败。而加入while循环后,让另一个getchar()一次一次将缓冲区的字符取走,达到清空缓冲区的作用。