C语言中有三种循环语句:while语句、do while语句、for语句
while循环:
简单while循环示例:
//输出1-10int main(){int i = 1;while (i <= 10){printf("%d\n", i);i++;}return 0;}
while语句中break和continue的作用
1.break:永久的终止循环
int main(){int i = 1;while (i <= 10){if (5 == i)break;//此时i等于5,执行break,程序马上跳出循环printf("%d\n", i);i++;}return 0;}
输出结果:
2.continue:跳过continue后面的语句直接执行while的判定条件
int main(){int i = 1;while (i <= 10){if (5 == i)continue;/*此时i等于5,跳过下面的代码,直接执行i <= 10的判定,为真,再次进入循环体,陷入死循环*/printf("%d\n", i);i++;}return 0;}
输出结果:
注意此时程序没有结束,因为程序陷入死循环。
while循环的简单应用:
1.打印键盘输入的字符
//打印键盘输入的字符int main(){int ch; //EOF的值为-1,所以ch的类型为int而不是charwhile ((ch = getchar()) != EOF)//EOF:是一个与所有字符的值都不同的值,VS中是-1//标志着检测到文件的结尾,pc中Ctrl+Z可以模拟文件结尾{putchar(ch);}return 0;}
getchar、putchar都是标准I/O函数,用来输入和输出字符,而且一次只能处理一个字符。
2.用while循环清空缓冲区
绝大部分系统的输入方式为缓冲输入,即用户输入的字符被收集并存储在一个被称为缓冲区的临时存储区,按下Enter键后,程序才可使用用户输入的字符。
//用while语句清理缓冲区int main(){char password[20] = { 0 };printf("请输入密码:");scanf("%s", password);printf("请确认密码Y/N:");//清理缓冲区while ((getchar()) != '\n'){;}//清理缓冲区完成,此时可以正常读取输入的Yif ((getchar() == 'Y')){printf("确认成功\n");}else{printf("确认失败\n");}return 0;}
3.只打印0-9数字
//输入的字符中只打印0-9数字int main(){char ch;while ((ch = getchar()) != EOF){if (ch < '0' || ch > '9')continue;putchar(ch);}return 0;}