0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

从零开始跟我学C语言之循环结构(下)

jf_ZqFkd6Up 来源:linux迷 2023-02-12 17:27 次阅读

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;
}
运行结果如下://随便输入字母字符数字

eb652f02-aab6-11ed-bfe3-dac502259ad0.png

分析:按照题意,由键盘输入一行字符是一个重复的动作,每输入一个字符都需要判断属于哪种字符,分别进行统计。若输入的是一个回车符时,程序运行结束。(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

eb953f44-aab6-11ed-bfe3-dac502259ad0.png

【输入一个整数,统计该数的位数】


#include
//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;
}
运行结果如下://输入1235698

ebb84962-aab6-11ed-bfe3-dac502259ad0.png 许多时候当循环结构中出现多个循环条件时,要求当某个条件满足时会立即结束循环,或者循环结构中根据条件会跳过某些语句继续循环,这就要在循环结构中配合使用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;
}
ebea642e-aab6-11ed-bfe3-dac502259ad0.png

在C语言中,还有一种可以实现循环控制的语句,即goto语句。goto语句的一般形式如下:goto语句标号;。

说明:语句标号是一个有效的标识符,使用时在语句的后面跟一个“;”出现在函数中某语句的前面。程序执行到goto语句时,会控制跳转到该语句标号处,达到控制循环的目的。语句标号必须与goto语句处于同一个函数中。通常goto语句与if语句连用实现循环控制。大型程序中由于goto语句可能存在不合理的使用,会使程序结构变坏,所以结构化程序设计中,不建议使用goto语句。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10990

    浏览量

    206735
  • C语言
    +关注

    关注

    180

    文章

    7530

    浏览量

    128641
  • 程序
    +关注

    关注

    114

    文章

    3631

    浏览量

    79541
  • 函数
    +关注

    关注

    3

    文章

    3868

    浏览量

    61309
  • 循环结构
    +关注

    关注

    0

    文章

    22

    浏览量

    7666

原文标题:从零开始跟我学 C 语言之循环结构(下)

文章出处:【微信号:Linux迷,微信公众号:Linux迷】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    从零开始单片机C语言

    本帖最后由 igbt 于 2011-4-21 10:12 编辑 《从零开始单片机C语言》是单片机入门教材。
    发表于 04-21 10:04

    跟我学模拟电子电路

    跟我学模拟电子电路
    发表于 05-03 20:56

    从零开始电路基础》(从零开始电子技术丛书)

    电气控制与PLC技术].刘建清.扫描版.pdf[从零开始电子测量技术].李建清.扫描版.pdf[从零开始CPLD和Verilog.HDL编程技术].李建清.扫描版.pdf[
    发表于 06-05 23:12

    跟我学模拟电子电路

    跟我学模拟电子电路
    发表于 08-07 16:35

    [从零开始单片机C语言].李建清-著.【高清版】

    ` 本帖最后由 zgzzlt 于 2012-8-15 21:50 编辑 [从零开始单片机C语言].李建清-著.【高清版】`
    发表于 08-15 08:44

    跟我学模拟电子电路

    跟我学模拟电子电路
    发表于 08-19 23:38

    [从零开始单片机C语言].李建清.扫描版PDF

    ` 本帖最后由 木木1999 于 2013-9-29 14:11 编辑 下载地址:http://yunpan.cn/QGCsezJtF5mjp[从零开始单片机C语言].李建清.扫
    发表于 09-29 13:57

    从零开始单片机C语言——PDF

    `下载地址:http://yunpan.cn/QGCsezJtF5mjp[从零开始单片机C语言].李建清.扫描版`
    发表于 09-29 16:28

    从零开始单片机C语言,很全的资料

    `从零开始单片机C语言,很全的资料需要的网盘里取从零开始单片机
    发表于 07-22 09:20

    从零开始layout

    请问谁有从零开始layout的教程,共享一,谢谢!
    发表于 07-23 14:50

    从零开始labview

    从零开始,这里开一贴,附上每天给女神发的资料和自己整理的文档,希望能帮到一些想要的人。(不知道为什么有回复审核,我自己早就回过贴结果一直到到第二天也没审核通过,各位不要介意,我尽力了)
    发表于 12-06 18:55

    从零开始电子》丛书全套网盘分享

    从零开始模拟电子技术链接:https://pan.baidu.com/s/13rp09WUy3z_CZMJEZMrzkA提取码:othe【从零开始电子丛书】
    发表于 06-28 18:45

    初学者都在看!!从零开始单片机C语言从零开始电子丛书】

    初学者都在看!!从零开始单片机C语言从零开始电子丛书】
    发表于 07-27 15:32

    从零开始跟我学C语言之分支结构(下)

    Hi!这里是渔火。今天我们继续来讲C语言的分支结构。在C语言里,可以使用if-else实现分支结构
    的头像 发表于 02-07 09:27 521次阅读

    从零开始跟我学C语言之循环结构(上)

    Hi!这里是渔火。今天我们来学校C语言中的循环结构循环结构结构化程序设计中的基本
    的头像 发表于 02-10 15:30 604次阅读