循环语句 while(进阶)

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()一次一次将缓冲区的字符取走,达到清空缓冲区的作用。

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值