do while在c语言中的作用

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 <stdio.h>int main(){ int x = 0; // while()中使用的x 需在do while前声明 do { printf( "Hello, world!n" ); } while ( x != 0 ); getchar();}

2 应用场景

2.1 用户交互

#include <stdio.h> /* printf, scanf, puts, NULL */#include <stdlib.h> /* srand, rand */#include <time.h> /* 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(iSecret<iGuess) puts ("The secret number is lower"); else if(iSecret>iGuess) puts ("The secret number is higher"); } while(iSecret!=iGuess); puts ("Congratulations!"); return 0;}

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

#include <stdio.h>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 <stdio.h>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("ninput 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-

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:dandanxi6@qq.com

(0)
上一篇 2023年 4月 14日 下午1:09
下一篇 2023年 4月 14日 下午1:38

相关推荐

  • 水星路由器用手机怎么设置密码,水星路由器桥接后怎么设置密码

    很多使用水星无线路由器的用户找到艾薇百科,问我怎么用手机来设置水星路由器密码,或者是用手机修改水星路由器密码。 用手机设置水星路由器密码,其实非常的简单,只需要先用手机登录到水星路…

    2023年 5月 28日
  • 手机上开通的证券账户如何销户

    手机证券销户入口 1.东方财富 需联系服务经理,确认有销户资格后,由销户专员联系指导。 2.华泰证券 需联系服务经理,由服务经理走内部销户流程,并审批通过后,会在涨乐财富通推送相应…

    2023年 9月 23日
  • 关于CAD图层的设置一些原则和技巧

    图层是AutoCAD中很重要的一个组成部分。很难想象如果没有图层格式,AutoCAD将会是怎样的,但对于初学者,往往把图层的重要性给忽略了。 在图层管理器的对话中,图层的各种格式一…

    2023年 4月 26日
  • 怎么可以知道对方手机在和谁打电话

    朋友们大家好,我是小俊,一个专注于知识的博主,相信很多朋友在生活中啊,都会通过查找通话记录的方法,来查看我们给谁打过电话,或者呢查看我们的对方给谁打过电话,这样呢,就可以避免一些重…

    2023年 3月 2日
  • 如何快速做美团外卖兼职,美团外卖新手兼职一个月挣多少

    上篇我说了既然你想来美团外卖做兼职,那就要做好好心理和物质上的准备。当我们都准备好了之后,那就开始我们的美团外卖兼职配送之旅吧! 正所谓万事开头难,跑美团众包也是如此,按时按量的完…

    2023年 8月 25日
  • 黄油相机6.0,黄油相机红底

    当照片加字,变成一种真正的创作 我以前没有想过加字应用也能变成一个社区,但如今的黄油相机很可能是社交应用里加字最强的,也是加字应用里社交最强的。 社交属性无疑给了加字这一工具最好的…

    2023年 7月 20日
  • 忘记华为电脑账号密码怎么办

    集微网2月29日消息(文/数码控),在华为手机访问许多应用或服务都会用到华为账号,如果遇到忘记账号或密码的情况,应该怎么办呢?对于这种情况,华为官方早就有所应对,具体有以下三种方法…

    2022年 12月 17日
  • 什么是淘宝黑搜商家要如何做,淘宝黑搜提升流量的方法

    哈喽大家好,我今天又来给大家讲技术操作了哈答应大家的今天要给你们讲猜你喜欢的黑色版,这个版本的啊,我一直在琢磨,要不要给他讲哈,因为这会涉嫌到你们要去补单干预你自己的数据,然后让你…

    互联网 2023年 3月 17日
  • 想成为一名程序员该如何做(程序员编程成为艺术)

    (现如今,不管是大佬还是歌手,都在学习编程。今天就来讲讲编程的事情,和如何成为一名程序员)(本人15年不间断的编程) 1、什么是编程 你一定听过工程师在他们的电脑上写代码(编程),…

    互联网 2023年 2月 3日
  • 电脑怎么设置静态ip(静态ip怎么设置网速快)

    静态IP是可以直接上网的IP段,在ISP服务商装机时会划分一个IP地址给用户,让计算机在连接网络时不再自动获取网络地址,一般来说需要用户在计算机上手动进行设置才可以上网。那么用户们…

    2023年 4月 16日