有些情况下,不论条件是否满足,循环过程必须至少执行一次,这时可以采用do...while语句。就像如图7.4所示登录账号一样,需要先输入密码和账户名,后进行判断;如果密码始终不正确,则循环要求用户输入密码。

图7.4  登录界面

而do...while语句的特点就是先执行循环体语句的内容,然后判断循环条件是否成立。do...while语句一般形式为:

do

循环体语句

while(表达式);

do...while语句的执行流程图如图7.5所示。

图7.5do...while语句的执行流程图

do...while语句首先执行一次循环体语句中的内容,然后判断表达式,当表达式的值为真时,返回重新执行循环体语句。执行循环,直到表达式的判断结果为假时为止,此时循环结束。

例如下面代码:

   do

  {

   iNumber++; 

   }while(iNumber<);

在这几行代码中,首先执行iNumber++的操作,也就是说,不管iNumber是否小于100都会执行一次循环体中的内容。然后判断while后括号中的内容,如果iNumber小于100,则再次执行循环语句块中的内容。

注意:在使用do...while语句时,循环条件要放在while关键字后面的括号中,最后必须加上一个分号,这是许多初学者容易忘记的。

实例  模拟一辆客车的承载量

一辆客车只能承载25人,如果超过25人,司机就会拒绝载客。具体代码如下:

  #include<stdio.h>        /*包含头文件*/

       int main()                                            /*主函数main*/

       {

       intnum=;                                        /*定义人数变量*/

       scanf("%d",&num);                     /*输入人数*/

        do      /*进入循环*/

            {

       num++;                                       /*人数累加1*/

       printf("还能承载 %d 人,\n",-num);/*所剩座位*/

             }while(num<=);                                /*检验条件*/

       printf("座位已满,不能再承载了。\n");/*输出信息*/

       return ;                                         /*程序结束*/

       }

运行程序,显示结果如图7.6所示。

图7.6  客车承载数运行图

从该实例代码和运行结果可以看出:

(1)定义变量num用来保存当前车辆的载客量。do关键字之后是循环语句,语句块中进行累加1和打印出座位剩余情况等操作。

(2)语句块下方是while语句检验条件,如果检验为真,则继续执行上面的语句块操作;为假时,程序执行下面的代码。在循环操作完成之后,将执行程序的第12行代码。

本文摘自明日科技出版的《零基础学C语言》,转载请注明出处!!!

do…while语句的更多相关文章

  1. python第六天 函数 python标准库实例大全

    今天学习第一模块的最后一课课程--函数: python的第一个函数: 1 def func1(): 2 print('第一个函数') 3 return 0 4 func1() 1 同时返回多种类型时, ...

  2. whdxlib

    1 数据库系统实现 实 验 指 导 书 齐心 彭彬 计算机工程与软件实验中心 2016 年 3 月2目 录实验一.JDBC 应用程序设计(2 学时) ......................... ...

  3. 【.net 深呼吸】细说CodeDom(2):表达式、语句

    在上一篇文章中,老周厚着脸皮给大伙介绍了代码文档的基本结构,以及一些代码对象与CodeDom类型的对应关系. 在评论中老周看到有朋友提到了 Emit,那老周就顺便提一下.严格上说,Emit并不是针对代 ...

  4. 将表里的数据批量生成INSERT语句的存储过程 增强版

    将表里的数据批量生成INSERT语句的存储过程 增强版 有时候,我们需要将某个表里的数据全部或者根据查询条件导出来,迁移到另一个相同结构的库中 目前SQL Server里面是没有相关的工具根据查询条件 ...

  5. mysql学习之 sql语句的技巧及优化

    一.sql中使用正则表达式 select name,email from user where email Regexp "@163[.,]com$"; sql语句中使用Regex ...

  6. SELECT INTO 和 INSERT INTO SELECT 两种表复制语句

    Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少.但我 ...

  7. MySQL 系列(三)你不知道的 视图、触发器、存储过程、函数、事务、索引、语句

    第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 第三篇:MySQL 系列(三)你不知道的 视图.触发器.存储过程.函数 ...

  8. Oracle 数据库语句大全

    Oracle数据库语句大全 ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CH ...

  9. MyBatis源码分析(二)语句处理器

    StatementHandler 语句处理器,主要负责语句的创建.参数的设置.语句的执行.不负责结果集的处理. Statement prepare(Connection connection, Int ...

  10. 一条Sql语句分组排序并且限制显示的数据条数

    如果我想得到这样一个结果集:分组排序,并且每组限定记录集的数量,用一条SQL语句能办到吗? 比如说,我想找出学生期末考试中,每科的前3名,并按成绩排序,只用一条SQL语句,该怎么写? 表[TScore ...

随机推荐

  1. wget扒网站

    wget神奇操作   整站复制 只限静态网页 wget -P 指定下载路径 -p 获取显示HTML页面所需的所有图像 -k  使链接指向本地文件 -H  递归时转到外部主机. wget --mirro ...

  2. 使用Python PIL库中的Image.thumbnail函数裁剪图片

    今天,是我来到博客园的第五天,发现自己还没有头像,想着上传ubuntu系统中我很喜欢的一个背景图片来当头像,但是因为图片过大,上传失败了.那么,我们如何使用python中强大的PIL库来进行图片裁剪呢 ...

  3. 用Twebbrowser做可控编辑器与MSHTML

    首先要明白mshtml的属性方法: {IHTMLDocument2 方法:} write //写入 writeln //写入并换行 open //打开一个流,以收集 document.write 或 ...

  4. Selenium的安装和简单实用——PhantomJS安装

    简介 Selenium是一个用于Web应用程序测试的工具. Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, 9, 10, 11),Firefox,S ...

  5. 精彩的linux shell 命令

      1. Star Wars (telnet) telnet是基于Telnet协议的远程登录客户端程序,经常用来远程登录服务器.除此还可以用它来观看星球大战: telnet towel.blinken ...

  6. hdu 3657最大点权独立集变形(方格取数变形)

    /* 分奇偶为二部图,s与奇建图,t与偶建图,权值为当前数的值,如果遇到必取的权值置为inf. 奇偶建边为相邻的权值为2*(x&y):所有数的值-最小点全覆盖. 置为inf意为不能割掉.奇偶边 ...

  7. 虚拟机+centOS挂载ISO步骤

    https://blog.csdn.net/u010612373/article/details/52240447

  8. [转]十五天精通WCF——第三天 client如何知道server提供的功能清单

     通常我们去大保健的时候,都会找姑娘问一下这里能提供什么服务,什么价格,这时候可能姑娘会跟你口述一些服务或者提供一份服务清单,这样的话大 家就可以做到童嫂无欺,这样一份活生生的例子,在wcf中同样是一 ...

  9. OpenCV摄像头读取

    在Mac下面使用默认的OpenCV读取摄像头程序会报错 int main(int, char**) { VideoCapture cap(0); // open the default camera ...

  10. Intellij Idea 13:运行Clojure的repl环境

    准备工作:1.    安装cursive插件.       a)    官网地址:https://cursiveclojure.com/userguide        b)    插件的Reposi ...