当前位置 首页 C语言设计第三版 第19章

《C语言设计第三版》第19章

作者:谭浩强 字数:1164 书籍:C语言设计第三版

  6.3 while 语句

  while 语句的一般形式为:

  while(表达式)语句

  谭浩强 C 语言程序设计 2001 年 5 月 1 日

  其中表达式是循环条件,语句为循环体。

  while 语句的语义是:计算表达式的值,当值为真(非 0)时, 执行循环体语句。其执行

  过程可用下图表示。

  100

  ∑ n

  【例 6.2】用while语句求 =

  n 1

  。

  用传统流程图和 N-S 结构流程图表示算法,见图:

  main()

  {

  int i,sum=0;

  i=1;

  while(i<=100)

  {

  sum=sum+i;

  i++;

  }

  printf("%d\n",sum);

  }

  谭浩强 C 语言程序设计 2001 年 5 月 1 日

  【例 6.3】统计从键盘输入一行字符的个数。

  #include

  main(){

  int n=0;

  printf("input a string:\n");

  while(getchar()!='\n') n++;

  printf("%d",n);

  }

  本例程序中的循环条件为 getchar()!='\n',其意义是, 只要从键盘输入的字符不是回

  车就继续循环。循环体 n++完成对输入字符个数计数。从而程序实现了对输入一行字符的字

  符个数计数。

  使用 while 语句应注意以下几点:

  1) while 语句中的表达式一般是关系表达或逻辑表达式,只要表达式的值为真(非 0)即可

  继续循环。

  【例 6.4】

  main(){

  int a=0,n;

  printf("\n input n: ");

  scanf("%d",&n);

  while (n--)

  printf("%d ",a++*2);

  }

  谭浩强 C 语言程序设计 2001 年 5 月 1 日

  本例程序将执行 n 次循环,每执行一次,n 值减 1。循环体输出表达式 a++*2 的值。该

  表达式等效于(a*2;a++)。

  2) 循环体如包括有一个以上的语句,则必须用{}括起来,组成复合语句。

  6.4 do-while 语句

  do-while 语句的一般形式为:

  do

  语句

  while(表达式);

  这个循环与 while 循环的不同在于:它先执行循环中的语句,然后再判断表达式是否为

  真, 如果为真则继续循环;如果为假, 则终止循环。因此, do-while 循环至少要执行一次

  循环语句。其执行过程可用下图表示。

  100

  ∑ n

  【例 6.5】用do-while语句求 =

  n 1

  。

  用传统流程图和 N-S 结构流程图表示算法,见图:

  main()

  {

  int i,sum=0;

  i=1;

  do

  {

  sum=sum+i;

  i++;

  }

  while(i<=100)

  printf("%d\n",sum);

  }

  谭浩强 C 语言程序设计 2001 年 5 月 1 日

  同样当有许多语句参加循环时, 要用"{"和"}"把它们括起来。

  【例 6.6】while 和 do-while 循环比较。

  (1)main()

  {int sum=0,i;

  scanf(“%d”,&i);

  while(i<=10)

  {sum=sum+i;

  i++;

  }

  printf(“sum=%d”,sum);

  }

  (2)main()

  {int sum=0,i;

  scanf(“%d”,&i);

  do

  {sum=sum+i;

  i++;

  }

  while(i<=10);

  printf(“sum=%d”,sum);

  }

  6.5 for 语句

  谭浩强 C 语言程序设计 2001 年 5 月 1 日

  在 C 语言中,for 语句使用最为灵活,它完全可以取代 while 语句。它的一般形式为:

  for(表达式 1;表达式 2;表达式 3) 语句

  它的执行过程如下:

  1) 先求解表达式 1。

  2) 求解表达式 2,若其值为真(非 0),则执行 for 语句中指定的内嵌语句,然后执行下面

  第 3)步;若其值为假(0),则结束循环,转到第 5)步。

  3) 求解表达式 3。

  4) 转回上面第 2)步继续执行。

  5) 循环结束,执行 for 语句下面的一个语句。

  其执行过程可用下图表示。

  谭浩强 C 语言程序设计 2001 年 5 月 1 日

  for 语句最简单的应用形式也是最容易理解的形式如下:

  for(循环变量赋初值;循环条件;循环变量增量) 语句

  循环变量赋初值总是一个赋值语句, 它用来给循环控制变量赋初值; 循环条件是一个

  关系表达式,它决定什么时候退出循环;循环变量增量,定义循环控制变量每循环一次后

  按什么方式变化。这三个部分之间用“;”分开。

  例如:

  for(i=1; i<=100; i++)sum=sum+i;

  先给 i 赋初值 1,判断 i 是否小于等于 100, 若是则执行语句,之后值增加 1。再重新判断,

  直到条件为假,即 i>100 时,结束循环。

  相当于:

  i=1;

  while(i<=100)

  { sum=sum+i;

  i++;

  }

  对于 for 循环中语句的一般形式,就是如下的 while 循环形式:

  表达式 1;

  while(表达式 2)

  {语句

  表达式 3;

  }

  注意:

  1) for 循环中的“表达式 1(循环变量赋初值)”、“表达式 2(循环条件)”和“表达式 3(循

  谭浩强 C 语言程序设计 2001 年 5 月 1 日

  环变量增量)”都是选择项, 即可以缺省,但“;”不能缺省。

  2) 省略了“表达式 1(循环变量赋初值)”, 表示不对循环控制变量赋初值。

  3) 省略了“表达式 2(循环条件)”, 则不做其它处理时便成为死循环。

  例如:

  for(i=1;;i++)sum=sum+i;

  相当于:

  i=1;

  while(1)

  {sum=sum+i;

  i++;}

  4) 省略了“表达式 3(循环变量增量)”, 则不对循环控制变量进行操作,这时可在语句体中

  加入修改循环控制变量的语句。

  例如:

  for(i=1;i<=100;)

  {sum=sum+i;

  i++;}

  5) 省略了“表达式 1(循环变量赋初值)”和“表达式 3(循环变量增量)”。

  例如:

  for(;i<=100;)

  {sum=sum+i;

  i++;}

  相当于:

  while(i<=100)

  {sum=sum+i;

  i++;}

  6) 3 个表达式都可以省略。

  例如:

  for(;;)语句

  相当于:

  while(1)语句

  7) 表达式 1 可以是设置循环变量的初值的赋值表达式,也可以是其他表达式。

  例如:

  for(sum=0;i<=100;i++)sum=sum+i;

  8) 表达式 1 和表达式 3 可以是一个简单表达式也可以是逗号表达式。

  for(sum=0,i=1;i<=100;i++)sum=sum+i;

  或:

  for(i=0,j=100;i<=100;i++,j--)k=i+j;

  9) 表达式 2 一般是关系表达式或逻辑表达式,但也可是数值表达式或字符表达式,只要其

  值非零,就执行循环体。

  例如:

  for(i=0;(c=getchar())!

目录
设置
设置
阅读主题
字体风格
雅黑 宋体 楷书 卡通
字体风格
适中 偏大 超大
保存设置
恢复默认
听书
听书
发声
男声 女生 逍遥 软萌 粤语 陕西 台语 辽宁
语速
适中 超快
音量
适中
开始播放
手机
手机阅读
扫码获取链接,使用浏览器打开
书架同步,随时随地,手机阅读
收藏
反馈
章节报错
当前章节
报错内容
提交
加入收藏 < 上一章 回到书页 下一章 > 错误反馈

设为首页加入收藏保存桌面网址发布会员中心留言本

Copyright © 2024-2025 All Rights Reserved