目录

  • 1 第一章  C语言概述
    • 1.1 第一节  C语言的产生和发展
    • 1.2 第二节  C语言的特点
    • 1.3 第三节  两个简单的C程序
    • 1.4 第四节  C程序的上机步骤
    • 1.5 第五节  Dev-C++介绍
    • 1.6 第六节  VC2010学习版介绍
    • 1.7 第七节  宏定义和文件包含
    • 1.8 本章小结
    • 1.9 本章单元测试
  • 2 第二章  基本数据类型与简单程序设计
    • 2.1 第一节  C语言的基本数据类型
    • 2.2 第二节  常量
    • 2.3 第三节  变量
    • 2.4 第四节  赋值语句
    • 2.5 第五节  数据输出
    • 2.6 第六节 数据输入
    • 2.7 第七节  运算符
    • 2.8 第八节  常用的数学函数
    • 2.9 第九节  顺序结构程序设计
    • 2.10 本章小结
    • 2.11 本章单元测试
  • 3 第三章  分支结构程序设计
    • 3.1 第一节  关系表达式和逻辑表达式
    • 3.2 第二节  if单分支语句
    • 3.3 第四节  if双分支语句
    • 3.4 第五节  if多分支语句
    • 3.5 第六节  case多分支语句
    • 3.6 第七节  分支结构程序设计实例
    • 3.7 本章小结
    • 3.8 本章单元测试
    • 3.9 书中本章习题答案
  • 4 第四章  循环结构程序设计
    • 4.1 第一节  为什么需要循环控制
    • 4.2 第一节  while循环
    • 4.3 第二节  do ... while循环
    • 4.4 第三节  for循环
    • 4.5 第四节  多重循环
    • 4.6 第五节  break语句和continue语句
    • 4.7 第六节  循环结构程序设计实例
    • 4.8 本章小结
    • 4.9 书中本章习题答案
  • 5 第五章 数组
    • 5.1 第一节  一维数组的定义和使用
    • 5.2 第二节  二维数组的定义和使用
    • 5.3 第三节  字符数组的定义和使用
    • 5.4 第四节  数组的应用举例
  • 6 第六章  函数
    • 6.1 第一节  函数的定义
    • 6.2 第二节  函数的调用
    • 6.3 第三节 数组作为函数参数
    • 6.4 第四节  变量的作用域
    • 6.5 第五节 变量的存储类别
    • 6.6 第六节 函数应用实例
  • 7 第七章 结构体和共用体
    • 7.1 第一节  概述
    • 7.2 第二节  定义结构体变量的方法
    • 7.3 第三节 结构体变量的引用
    • 7.4 第四节 结构体数组
    • 7.5 第五节 共用体
    • 7.6 第六节  结构体和共用体应用实例
  • 8 第八章 指针
    • 8.1 第一节  指针的概念
    • 8.2 第二节  指向简单变量的指针
    • 8.3 第三节 指向数组的指针变量
    • 8.4 第四节  指向字符串的指针变量
    • 8.5 第五节 指针作为函数参数
    • 8.6 第六节  指向结构体的指针变量
    • 8.7 第七节 指针应用实例
  • 9 第九章  文件
    • 9.1 第一节  文件概述
    • 9.2 第二节  文件的打开和关闭
    • 9.3 第三节 文件的读/写函数
    • 9.4 第四节  文件定位函数
    • 9.5 第五节  文件应用实例
  • 10 附录
    • 10.1 附录A  基本字符ASCII码表(0~127)
    • 10.2 附录B  运算符优先级表
    • 10.3 附录C 常用C库函数表
    • 10.4 附录D  编译常见错误提示
    • 10.5 附录E  常见C语言英语单词
    • 10.6 附录F  如何从十进制转换为二进制
    • 10.7 附录G  如何把二进制数转化为十进制数
    • 10.8 附录H  什么是编译器
    • 10.9 附录I  与编译器相关的几个知识点
第二节  do ... while循环
  • 1 文字讲解
  • 2 视频讲解
  • 3 拓展资料

一、do while循环语句的一般形式

do

{

       语句序列 ;

} while ( 表达式 ) ;

说明:① 是一种直到型的循环结构。  ② 最后一个分号必须有。  ③ 花括号{ }必须有。  ④ 循环体是指语句序列,可以是一条语句或多条语句。

二、do  while循环语句的执行过程

1、do while循环语句的流程图


2、do  while语句的执行过程

① 执行循环体中的语句,开始一个循环的周期。

② 计算表达式的值。如果表达式为非 0,即循环条件为真,则转到第步,开始下一个循环周期;如果表达式为 0,即循环条件为假,则转到第步。

③ 结束 do...while循环,转而执行 do...while 循环语句后的第 1 条语句。

do...while 语句执行的特点是:先执行循环体,后判断条件,至少执行一次循环体。

例4-2  输入若干字符,以'*'作为输入结束符,分别用do...while语句和while语句实现,输入相同的字符串,比较它们的运行结果有何不同。

一、分析:

二、源程序如下:

1、do...while方式实现源代码如下:

  1. #include  <stdio.h>

  2. #include  <conio.h>

  3. main( )

  4. {

  5.       char  ch;

  6.       printf("使用 do...while 语句\n");

  7.       printf("输入若干字符('*'结束).\n");

  8.       ch = getchar( );

  9.       do {

  10.           putchar( ch );

  11.           ch = getchar( );

  12.        } while ( ch != '*' );

  13.        getch( );

  14. }

2、while方式实现源代码如下:

  1. #include  <stdio.h>

  2. #include  <conio.h>

  3. main( )

  4. {

  5.       char  ch;

  6.       printf("使用 while 语句\n");

  7.       printf("输入若干字符('*'结束).\n");

  8.       ch = getchar( );

  9.       while( ch != '*' )

  10.       {

  11.           putchar( ch );

  12.           ch = getchar( );

  13.        } 

  14.        getch( );

  15. }




三、程序测试

1、测试数据1:ABC*     

期望结果:ABC

         

测试结果:程序达到预期结果。

2、测试数据2:*DEFG*     

期望结果:ABC

    

测试结果:程序达到预期结果。

可以看出,如果第1次执行循环体时表达式为真,那么两种循环得到的结果相同;否则,两者的结果就不同( 前提:两者的循环体中的语句相同 )。

三、do...while循环语句的注意事项

1、不管语句是由多行或一行构成,都必须用"{ }"括起来,表示循环体。

2、while( 表达式 )后的";"不能遗漏。

3、do...while语句循环允许多层循环嵌套。

4、为防止造成死循环,需要在while循环的语句中或判断表达式中进行适当的条件修改,使其可以跳出循环。

这个循环与while循环的不同在于: 它先执行循环中的语句,然后再判断表达式是否为真, 如果为真则继续循环;如果为假, 则终止循环。因此, do-while循环至少要执行一次循环语句。

例4-3  输入一个整数,按相反次序输出。例如,输入54321,输出12345.

一、程序分析:


二、源程序参考如下:

  1. #include  <stdio.h>

  2. #include  <conio.h>

  3. main()

  4. {

  5.       long  num;

  6.       int  b;

  7.       printf("输入一个整数:" );

  8.       scanf("", &num); //输入一个整数,位数可超过5

  9.       do

  10.       {

  11.              b = num % 10;  // 取个位数字

  12.              printf( "%d", b );

  13.              num = num / 10;  // 去掉个位数字

  14.       } while( num );  // 非 0 继续循环,0 结束

  15.       printf("\n");

  16.       getch( );

  17. }

三、程序测试

测试数据:54321     

期望结果:12345

        

测试结果:程序达到预期结果。

四、运行过程

表4-2  例4-3的运行过程
变量名bnum变量名bnum
初始状态
54321第3轮循环354
第1轮循环15432第4轮循环45
第2轮循环2543第5轮循环50