有些情况下,不论条件是否满足,循环过程必须至少执行一次,这时可以采用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语言》,转载请注明出处!!!

最新文章

  1. kernel/ptrace.c
  2. smartupload 上传与下载(转载)
  3. JS怎么动态命名变量名
  4. 逻辑操作符---Lua: and,or,not 对比 C++:&amp;&amp;,||,!
  5. iOS开发网络篇—搭建本地服务器(待整理)
  6. for循环练习题
  7. HTML常用标签及其全称
  8. Topcoder 好题推荐
  9. hdu 1987-How many ways(dp)
  10. SPOJ 130 - Rent your airplane and make money(dp+优化)
  11. jquery easyui filebox 上传附件 + asp.net后台
  12. 【CentOS】阿里云CentOS安装php环境
  13. Java基础篇——线程、并发编程知识点全面介绍(面试、学习的必备索引)
  14. ES match match_phrase term willcard的查询原理
  15. mongodb内嵌文档的javaapi,增删改查
  16. node.js之十大Web框架
  17. vue的中vuex为何需要mutation更新状态,vue-router的路由的理解
  18. bootstrap-treeview初使用
  19. FastAdmin 系统配置中添加选项卡
  20. C# 各种类型的转换

热门文章

  1. gitlab的添加密钥
  2. 腾讯云:ubuntu搭建 FTP 文件服务
  3. 【Codeforces 1106B】Lunar New Year and Food Ordering
  4. [HDU3518]Boring counting(后缀数组)
  5. hdu_1005_Number Sequence_201310222120
  6. 【实时文件同步】rsync+inotify-tools的安装与配置
  7. HDU 5293
  8. 《JAVA程序设计》实训第一天——《猜猜看》游戏
  9. cannot find -l****问题的解决的方法
  10. 纯CSS 实现关闭图标 icon