《C语言教程》06章 while语句

[复制链接]
 楼主| niuyaliang 发表于 2015-3-16 10:51 | 显示全部楼层 |阅读模式
一、while语句和do...while语句的比较
while语句是先判断条件为“真”时才循环,do...while语句是先进入循环再判断条件为“假”来决定是否终止循环。
  1. int i, sum=0;               int i, sum=0;

  2. scanf("%d", &i);            scanf("%d", &i);
  3. while (i <= 10) {           do {
  4.     sum = sum + i ;             sum = sum + i ;
  5.     i++;                        i++;
  6. }                           } while (i <= 10) ;
当输入小于等于10的数时,两个结果完全一样,当输入大于10的数时,左边结果为0,右边结果为输入的数。说明左边未进入循环,而右边循环了一次。


 楼主| niuyaliang 发表于 2015-3-16 11:17 | 显示全部楼层
二、break语句和continue语句
当运行到break语句或continue语句时,其后面的语句都不再运行。但不同的是:break语句中止了循环,从循环后面的语句开始运行;而continue语句并不中止循环,而是跳到循环的头部开始下一轮循环。

  1. #include <stdio.h>

  2. int main(void)
  3. {
  4.     int i, sum=0;

  5.     while (1) {
  6.         scanf("%d", &i);

  7.         if (i > 10 || i < 0) {
  8.             printf("请输入小于10的正数\n");
  9.             continue;
  10.         }
  11.         else if (i == 0) {
  12.             printf("退出循环\n");
  13.             break ;
  14.         }

  15.         sum = 0;
  16.         do {
  17.             sum = sum + i ;
  18.             i--;
  19.         } while(i > 0);

  20.         printf("sum = %d\n", sum);
  21.     }

  22.     return 0;
  23. }

结果如下:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| niuyaliang 发表于 2015-3-16 11:18 | 显示全部楼层
三、goto语句
    goto语句的使用危险性很大,一般不建议使用,但在多重循环的情况下,要终止到指定的某一层循环时,用goto的确很省事。使用goto语句要注意以下几点,否则编译并不一定出错,但程序很危险。下面的例子就很危险。不能跨函数跳转。只能从块内向块外跳转,不能从块外跳到块内。

  1. #include <stdio.h>

  2. int main(void)
  3. {
  4.     int x, y;
  5.     scanf("%d", &x);
  6.     scanf("%d", &y);
  7.     if (x == 0) {
  8.         printf("aaaaaa\n");
  9.         goto LA1;    //这是很危险的做法
  10.     }

  11.     if (y == 100) {
  12. LA1:
  13.         printf("bbbbbb\n");
  14.     }

  15.     return 0;
  16. }

结果如下:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

212

主题

2427

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部