大家好,欢迎来到IT知识分享网。
【C语言初阶】循环语句 —— while语句
文章目录
三、循环语句(循环结构)
学习,是一个需要不断进行重复的过程;反复阅读,反复练习,直至掌握。
循环结构是在一定条件下反复执行某段程序的流程结构。
1 循环语句
循环语句是由循环体及循环的终止条件两部分组成的。
被反复执行的程序被称为循环体,能否继续重复执行,取决于循环的终止条件。
1.1 语句分类
while语句for语句do while语句
1.2 循环 – 流程图
2 while 语句
while 语句,可以实现循环。即当满足某些条件时,重复执行同一段代码。
2.1 while – 流程图
2.2 语法结构
while(表达式) {
循环体 }
说明:
程序执行到 while 语句,首先进行的是表达式的判断;如果为真则进入循环体,否则就不进入循环体,而是执行 while 语句后的其他语句。
2.3 简单示例
在屏幕上打印1-10的数字。
代码示例:
#include<stdio.h> int main() {
//在屏幕上打印1-10的数字 int i = 1; while (i <= 10) {
printf("%d ", i); i++; } return 0; }
解释说明:
1 while (i <= 10) :循环判断部分,先对表达式的结果进行判断。
如果为真,则执行循环体;如果为假,就执行 while 语句后续的语句。
2.4 while 中的 break 和 continue 语句
2.4.1 break 语句
break在while中的使用
代码示例:
#include<stdio.h> int main() {
//while中的break int i = 1; while (i <= 10) {
if (5 == i) break; printf("%d ", i);//1 2 3 4 i++; } return 0; }
解释说明:
1 程序顺序执行到 while 循环,当满足循环条件就进入循环体。
进入循环体,先执行 if 语句,对条件表达式进行判断。
当 i 的值由 i++ 增加到5之后,就执行 break 语句。
2 当 braek 语句执行后,就跳出了 while 循环,程序流就会继续执行 while 之后的其他语句。
2.4.2 总结
- 在
while循环中只要遇到break语句,就会终止循环,跳出循环体。 while中break用于终止循环。
2.4.3 continue 语句
continue在while中的使用
① 代码示例1:
#include<stdio.h> int main() {
//1.while中的continue int i = 1; while (i <= 10) {
if (5 == i) continue; printf("%d ", i);//1 2 3 4 ...程序死循环 i++; } return 0; }
解释说明:
1 程序顺序执行到 while 循环,当满足循环条件就进入循环体。
进入循环体,先执行 if 语句,对条件表达式进行判断。
当 i 的值由 i++ 增加到5之后,就执行 continue 语句。
2 当执行 continue 语句后,就不再执行本次循环体内 continue 后面的语句,而是跳转到了 while 循环判断部分。
此时循环的循环条件仍是判断 i<=10 也就是判断 5<=10 ,跟上一次一样。
i 的值并没有增加( i++ 未执行),进入循环体后,执行 if 语句的判断部分,随即再次执行 continue 语句;一直如此就陷入了死循环。
② 代码示例2:
#include<stdio.h> int main() {
//2.while中的continue int i = 1; while (i <= 10) {
i++; if (5 == i) continue; printf("%d ", i);//2 3 4 6 7 8 9 10 11 } return 0; }
解释说明:
1 控制程序终止的循环变量 i 的变化 i++ 始终发生在 if 语句之前,所以程序不会陷入死循环,只是会跳过 i 为5的情况。
2.4.3 总结
continue 用于结束本次循环,也就是本次循环循环体中 continue 语句之后的其他语句不再执行,跳转到循环判断部分。接着进行下一次循环判断。
2.5 其它 while 示例
2.5.1 示例1
代码示例:
#include<stdio.h> int main() {
int ch = 0; while ((ch = getchar()) != EOF) {
putchar(ch);//打印字符 } return 0; }
解释说明:
1 EOF :End Of File 文件结束标志。在VS2019中这样定义:#define EOF -1
2 getchar() :C语言提供的一个库函数,用来从 stdin 标准输入流中获取字符。
如果读取成功,则返回该字符对应的ASCII码值;
如果读取失败,则返回 EOF。
//对比:scanf函数,如果读取成功,返回的是读取到的数据的个数;如果读取失败,返回EOF
3 putchar(ch) :将 ch 的值(字符)写入到 stdout 标准输出流中。
如果写入成功,则返回写入的字符;
如果写入失败,则返回 EOF 。
4 清理掉缓冲区剩余的数据
//使用while循环读取并丢弃输入行剩余的数据,包括换行符\n //写法一 while(getchar() != '\n') {
;//空语句 //在书写时省略掉while循环的花括号,可能会忽略掉这个分号(空语句) } //写法二 while(getchar() != '\n') {
continue;//如果使用continue,可读性会更高 }
5 Ctrl + Z 会让 scanf 或 getchar 返回 EOF 。
2.5.2 示例2
代码示例:
#include<stdio.h> int main() {
char ch = '\0'; while ((ch = getchar()) != EOF) {
if (ch < '0' || ch > '9') continue;//跳过非数字字符 putchar(ch); } return 0; }
解释说明:
1 if (ch < '0' || ch > '9') continue; :用来跳过非数字字符。
2 整个程序的结果:只打印数字字符,跳过其他字符。
总结:
本节介绍了循环分支中的 while 语句,并给出了它的语法结构;同时又讲解了在 while 语句使用 break 和 continue 会起到的作用。
感谢您的阅读!如有任何错误,欢迎您的批评指正!
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/131064.html

