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

相关推荐

  • win7本地连接ip设置

    我们在一些工作当中,有时候需要对本地连接ip进行设置。相信有很多win7用户都不知道怎么设置本地连接ip,实际上它也就是对相应网卡进行配置。今天我们就学习一下设置本地连接ip的方法…

    2023年 1月 22日
  • 有没有给自己换发型的软件(根据自己脸型适合什么妆容的app)

    很多小伙伴在换发型或者妆容前都会担心合不合适,今天我就给你推荐几款可以直接对图片发型妆容进行修改的软件!让你以后远离此类烦恼。 话不多说,上干货! 1.Ps 这款软件的名声相信很多…

    2023年 1月 21日
  • 会员体系如何搭建,会员搭建体系

    互联网人口流量红利见底,导致获客成本变高,而为了挖掘出存量市场,并且筛选出更多高价值的用户,电商发展出了会员制体系。当下会员制电商成为了大趋势,阿里、京东、网易等巨头正在加速培育自…

    2023年 3月 27日
  • 陌生人社交soul探探产品分析

    导语:随着互联网时代的不断发展,移动社交软件已经成为了人们生活中必不可少的一部分。然而,熟人社交已经无法完全满足年轻人的社交需求与宣泄需求,于是陌生人交友平台在Z世代群体中悄然兴起…

    2023年 2月 14日
  • 美亚太阳镜品牌,正牌时尚太阳镜推荐

    近期,上海市市场监管局集中组织力量对天猫、京东商城、1号店、东方购物、i百联5个网络交易平台29家企业销售的44个品牌49批次太阳镜进行了市场检查和质量抽检。经检测,有14批次不合…

    互联网 2023年 2月 8日
  • qq投诉平台在哪里投诉(qq投诉如何100%通过)

    QQ作为国内最大的即时通讯软件,拥有着庞大的用户群体。但随着用户数量的增加,也出现了众多的投诉问题。那么,如何有效解决QQ投诉难题呢? 一、了解QQ投诉渠道 QQ投诉渠道主要有两种…

    2023年 6月 10日
  • 美图秀秀怎么添加水印?(美图秀秀怎么添加水印到图片上)

    [闽南网] 现在很多人都喜欢使用第三方软件来拍照和摄影等等,美图秀秀就是一款比较有名气的摄影APP,那么美图秀秀怎么加水印呢,一些人可能知晓怎么去水印,下面就随小编一起来看看吧! …

    互联网 2023年 6月 11日
  • 快速将excel分成若干个文件

    Hello,大家好,今天跟大家分享下我们如何拆分Excel,一共分为2种情况 1.将一个Sheet根据某一个字段拆分为多个Sheet 2.将一个Excel文件中的多个sheet分别…

    2023年 1月 17日
  • 新加坡华侨银行账户冻结如何解决

    新加坡华侨银行(OCBC)是亚洲领先的金融服务集团之一,也是在新加坡、马来西亚地区最大的金融机构之一。其集团成为该地区信用评级最高的银行之一。信用评级:穆迪评级( Moody’s)…

    互联网 2023年 4月 3日
  • 亚马逊freetime儿童订阅服务

    Amazon FreeTime 是亚马逊于 2012 年推出的儿童订阅服务,不仅能够让儿童享受和体验各种高科技,而且还能让家长更轻松地监控孩子们的使用情况。不过这项服务的名称可能会…

    2023年 5月 2日