在实际编程中,仅仅掌握分支语句当然是不足的,当处理一个比较复杂且需要循环往复的去处理一件事的时候使用循环语句是比较好的选择。一般常用的循环语句有三种:while,for以及do while
(1).while语句的语法形式:
while(判断表达式)
{
循环语句;
}
(2).例子:
打印1~10:
#include<stdio.h>
int main()
{
int i = 0;
while(i<=10) //只要满足该表达式就会执行一次程序
{
printf("%d\n",i);
i++;
}
return 0;
}
(3).break语句和continue语句在while语句中的用法
1.当使用break语句的时候就会直接跳出整个循环,将不再执行整个while语句。
2.continue语句则是跳过之后的语句再一次从开始执行while语句。与break语句是有差异的。
(4).延伸:使用while语句来清理缓冲区中不需要的字符
1. 在学习该代码之前我们首先来了解一下什么是缓冲区。
在C语言中,一般可以通过 scanf 和 getchar 来输入数据,但 scanf 和 getchar 并不是直接从键盘获取字符的。当键盘输入字符的时候,先会存储到缓冲区,然后被 scanf 和 getchar 提取。如下
在键盘输入上图的数据后,scanf 和 getchar 就会对应的去提取出数据
实例:让用户输入密码然后确认,(输入Y的时候显示正确,输入N的时候显示错误)
#include <stdio.h>
int main()
{
char password[20]={0}; //先定义一个数组来存放密码
printf{"请输入密码:"}; //输入一串密码
scanf_s("%s",password);//当键盘输入一串字符的时候scanf会拿走,但输入“\n”不会被拿走,还在缓冲区
int t = 0;
while((t = getchar())!='\n') //该循环的作用就是拿走密码输入后的“/n”,防止被后面的getchar拿走
{
;
}
printf("请确认密码(Y正确/N失败)")
int ch = getchar(); //此时的缓冲区应该是空的
if(ch > 'Y')
printf("正确\n");
else
printf("失败\n");
return 0;
}
上述代码如果没有while循环去清理缓冲区,那当用户输入一串密码并且回车后,缓冲区就会保留回车键并将其当作一个字符存储下来,然后就会被后面的getchar直接提取,从而无论用户输入什么密码只要回车就会打印出失败。