C|do while的作用域和应用场景

do while语句是一个循环构造,其工作方式与while循环类似,只是该语句总是至少执行一次。执行语句后,do while循环检查条件。如果条件的计算结果为true,则执行路径跳回do-while循环的顶部并再次执行。

实际上,do while循环并不常用。将条件放在循环的底部会模糊循环条件,这可能会导致错误。因此,许多开发人员建议避免do-while循环。

do while的使用频率虽然比while循环和for循环要低,但也有其适用场景,可以让代码更简洁。

1 变量作用域

do…while在条件表达式中的作用域需要在do while的大括号{}外(C语言使用{}定义语句块),也就是说,while()中使用的变量不能在do{}内定义,由此,其代码块的封装性比while循环要弱。

#include int main(){ int x = 0; // while()中使用的x 需在do while前声明 do { printf( “Hello, world!” ); } while ( x != 0 ); getchar();}

2 应用场景

2.1 用户交互

#include /* printf, scanf, puts, NULL */#include /* srand, rand */#include /* time */int main (){ int iSecret, iGuess; /* initialize random seed: */ srand (time(NULL)); /* generate secret number between 1 and 10: */ iSecret = rand() % 10 + 1; do { printf (“Guess the number (1 to 10): “); scanf (“%d”,&iGuess); // 如果不使用while(),此行代码要写两次 if(iSecretiGuess) puts (“The secret number is higher”); } while(iSecret!=iGuess); puts (“Congratulations!”); return 0;}

以下是类似的用户交互情形:

#include int main (){ int c; puts (“Enter text. Include a dot (‘.’) in a sentence to exit:”); do { c=getchar(); // 如果不使用do while,则此行代码要写在while()内或写两次 putchar (c); } while(c != ‘.’); return 0;}

2.2 读取文件

#include int main (){ FILE *fp; int c; int n = 0; fp = fopen(“file.txt”,”r”); if(fp == NULL) { perror(“打开文件时发生错误”); return(-1); } do { c = fgetc(fp); // 也是一种交互的方式,上面实例也是键盘输入,这里是从磁盘获取数据 if( feof(fp) ) break ; printf(“%c”, c); }while(1); fclose(fp); return(0);}

do while控制结构常用于输入一个字符做判断的情形:

char c;do{ // do while控制结构常用于输入一个字符做判断的情形int number;printf(“input number to look for:”);scanf(“%d”,&number);//search(number,num,name);printf(“continue ot not(Y/N)?”);fflush(stdin);scanf(“%c”,&c );}while(!(c==’N’||c==’n’));

按条件输入时,do while用起来更自然:

do{ printf(“Enter n(1–15):”);//要求阶数为1~15 之间的奇数 scanf(“%d”,&n);}while( ! ( (n>=1) && ( n <= 15 ) && ( n % 2 != 0 ) ) );

做菜单设计与用户交互时,通常也使用do while。

-End-

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
用户投稿
上一篇 2022年6月13日 15:17
下一篇 2022年6月13日 15:17

相关推荐

  • ios手游模拟器(手游模拟器ios)

    本文主要讲的是ios手游模拟器,以及和手游模拟器ios相关的知识,如果觉得本文对您有所帮助,不要忘了将本文分享给朋友。 哪个iOS模拟器能多开手游账号?可以推荐个好用的模拟器给我吗…

    2022年11月27日
  • 分享4条发微商朋友圈的方法(微商朋友圈应该怎么发)

    对于微商朋友来说,朋友圈的重要性不言而喻了。 那么微商的朋友圈到底该怎么发呢? 为什么同样是经营一个朋友圈,有的微商看起来逼格满满,实际效果也不错;而有的却动都不动就被屏蔽甚至拉黑…

    2022年11月27日
  • 短视频策划内容的3个要点(短视频策划内容怎么做)

    短视频在制作时,内容框架非常重要。如果直奔主题,然后结束,聚卓告诉你,这样的短视频已经过时了。现在的短视频需要框架的,但不是任何框架,它需要一种易于理解和消化的框架。而且,现在大多…

    2022年11月27日
  • 美团第三季度实现营收626亿元,即时配送订单量增至50亿笔

    新京报讯(记者秦胜南)11月25日,美团发布业绩公告显示,第三季度营收为626亿元,较去年同比增长28.2%,净利润为12.2亿元。第三季度,美团即时配送订单数增长至50亿笔。截至…

    2022年11月27日
  • 存储过程语法(sql server存储过程语法)

    今天小编给各位分享存储过程语法的知识,其中也会对sql server存储过程语法进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧! oracle存储过程基本语法…

    2022年11月26日
  • 个人怎么做抖音带货(个人做抖音带货能赚钱吗)

    抖音如今是大家很熟悉的短视频平台,不过现在的抖音却不只是短视频那么简单,它的功能非常丰富,其中一个就是可以带货,相信很多小伙伴都有在抖音上买过东西,抖音如今的变现能力也是不容小觑的…

    2022年11月25日
  • 客服的岗位职责怎么写(客服工作内容及职责)

    各位小伙伴们大家周一好,又到了每周一给大家分享干货内容的时候啦~ 本期来跟大家分享一下客服工作管理流程以及客服岗位里面的每项职能岗位的核心细则,也是干货满满推荐收藏~ 一.补偿流程…

    2022年11月25日
  • 小红书平台的一些机制及玩法详解(小红书玩法有哪些)

    关于小红书 一:小红书平台的一些机制 1. 笔记内容的CES评分机制 2. 笔记流量入口与长尾效应 二:小红书优质笔记的特点(分维度、类型分析) 1.笔记的本身架构组成 维度 2.…

    2022年11月25日
  • 百度关键词快速排名的4大原理解析(百度怎么刷关键词)

    近期百度公告惊雷算法2.0,升级之快还是第一次吧,看来百度对于刷点击行为是零容忍了。之前尹华峰SEO技术博客介绍过一篇如何使用刷点击工具,其实市面上有很多这类SEO快速排名的软件,…

    2022年11月25日
  • 抖音世界杯投屏怎么弄 抖音看世界杯怎么看能投屏吗

    抖音作为短视频平台第一次进军世界杯直播,小编还是很期待的,毕竟每天没事的时候都会刷一下抖音,看直播的话也是方便了不少,那抖音看世界杯可以投屏吗?下面一起来了解一下。 抖音世界杯投屏…

    2022年11月24日

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息