Hi!这里是渔火。今天我们来讲用while语句和do-while语句实现循环结构。
在C语言中,使用while语句完成不定次数的循环,如果满足循环条件,则反复执行循环体语句,当循环条件不满足时退出循环。while语句在使用时,总是先要判断一个条件,使用可以用while语句实现“当型”循环。while语句的一般形式如下:while(表达式)循环体;。接下来我们来看一个例子。
【由键盘输入一串字符,分别统计输入字符中数字字符、字母字符以及其他字符的个数。】
#include运行结果如下://随便输入字母字符数字//2023.2.5渔火 Linux迷 www.linuxmi.com int main() { int d,l,o; char ch; d=l=o=0; printf("请输入一串字符:"); while((ch=getchar())!=' ') if((ch>='0')&&(ch<='9')) d++; else if ((ch>='a')&&(ch<='z')||(ch>='A')&&(ch<='Z')) l++; else o++; printf("数字%d个,字母%d个,其他%d个 ",d,l,o); //2023.2.5渔火 Linux迷 www.linuxmi.com return 0; }
分析:按照题意,由键盘输入一行字符是一个重复的动作,每输入一个字符都需要判断属于哪种字符,分别进行统计。若输入的是一个回车符时,程序运行结束。(ch=getchar())!=' ' 不能写成ch=getchar()!=' ' 两者不等价。循环体为为一条完整的if语句,若有多条语句时,必须使用复合语句的形式。while后面的括号“()”不可省略。
在C语言中,do-while语句也用于完成不定次数的循环,与while语句不同的是,do-while语句首先执行一次循环体,然后判断循环条件,如果满足,则反复执行循环语句,否则结束循环。do-while语句的一般形式如下:do 循环体 while(表达式);。接下来我们来看两个例子。
【求自然数的最大公约数和最小公倍数】
#include//2023.2.5渔火 Linux迷 www.linuxmi.com int main() { int a,b,r,n,m; printf("请输入两个整数:"); scanf("%d%d",&a,&b); m=a,n=b; do { r=a%b; a=b; b=r; } while(r!=0); printf("%d和%d的最大公约数是:%d ",m,n,a); printf("最小公倍数是:%d",m*n/a); //2023.2.5渔火 Linux迷 www.linuxmi.com return 0; }
运行结果如下://输入12 72
【输入一个整数,统计该数的位数】
#include运行结果如下://输入1235698//2023.2.5渔火 Linux迷 www.linuxmi.com int main() { long n,m; int count=0; printf("请输入一个整数:"); scanf("%ld",&n); m=n; if(n<0)n=-m; do{ n=n/10; count++; } while(n!=0); printf("整数%ld有%d位数 ",m,count); //2023.2.5渔火 Linux迷 www.linuxmi.com return 0; }
许多时候当循环结构中出现多个循环条件时,要求当某个条件满足时会立即结束循环,或者循环结构中根据条件会跳过某些语句继续循环,这就要在循环结构中配合使用break语句和continue语句。
break语句的一般形式如下:break;。当break语句用于循环语句中时,可使程序终止循环而转去执行循环语句的后继语句。通常break语句总是与if语句一起配合使用,即满足条件时便跳出循环。
continue语句的作用是跳过循环体continue后面的语句,继续下一次循环。continue语句只能用在循环语句中,常与if语句一起使用。continue语句的一般形式如下:continue;。我们来看一个用到continue语句的程序设计。
【把1~100之间能被7整除的数,以每行5个的形式在屏幕上输出。】
#include//2023.2.5渔火 Linux迷 www.linuxmi.com int main() { int i,n=1; for(i=1;i<=100;i++) { if(i%7!=0) continue; printf("%4d",i); if(n++%5==0)printf(" "); } //2023.2.5渔火 Linux迷 www.linuxmi.com return 0; }
在C语言中,还有一种可以实现循环控制的语句,即goto语句。goto语句的一般形式如下:goto语句标号;。
说明:语句标号是一个有效的标识符,使用时在语句的后面跟一个“;”出现在函数中某语句的前面。程序执行到goto语句时,会控制跳转到该语句标号处,达到控制循环的目的。语句标号必须与goto语句处于同一个函数中。通常goto语句与if语句连用实现循环控制。大型程序中由于goto语句可能存在不合理的使用,会使程序结构变坏,所以结构化程序设计中,不建议使用goto语句。
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
Linux
+关注
关注
87文章
11304浏览量
209524 -
C语言
+关注
关注
180文章
7604浏览量
136841 -
程序
+关注
关注
117文章
3787浏览量
81049 -
函数
+关注
关注
3文章
4331浏览量
62622 -
循环结构
+关注
关注
0文章
22浏览量
7723
原文标题:从零开始跟我学 C 语言之循环结构(下)
文章出处:【微信号:Linux迷,微信公众号:Linux迷】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
跟我学C语言之顺序结构(上)
hi!这里是渔火。今天我们来讲讲 C 语言的顺序结构。所谓顺序结构就是按照程序代码的书写顺序,自上而下依次执行。我们来看一个例子,感受下顺序
发表于 02-02 10:06
•587次阅读
《从零开始学电路基础》(从零开始学电子技术丛书)
电气控制与PLC技术].刘建清.扫描版.pdf[从零开始学电子测量技术].李建清.扫描版.pdf[从零开始学CPLD和Verilog.HDL编程技术].李建清.扫描版.pdf[
发表于 06-05 23:12
《从零开始学电子》丛书全套网盘分享
】从零开始学模拟电子技术链接:https://pan.baidu.com/s/13rp09WUy3z_CZMJEZMrzkA提取码:othe【从零开始学电子丛书】
发表于 06-28 18:45
从零开始学单片机C语言.haozip02
从零开始学单片机C语言.haozip02,论坛只允许上传小于20M的压缩包,
总共分两卷,需要下载两个压缩包才能解压成功。
发表于 08-16 18:54
•0次下载
从零开始学单片机C语言.haozip01
从零开始学单片机C语言.haozip01,论坛只允许上传小于20M的压缩包,
总共分两卷,需要下载两个压缩包才能解压成功。
发表于 08-16 19:37
•0次下载
从零开始跟我学C语言之分支结构(上)
今天我们来讲分支结构。计算机在执行程序时,通常都是按照语句的书写顺序执行的,但在许多情况下需要根据条件选择所要执行的语句,这就选择所要的语句。C语言中用于实现分支
评论