打印

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

[复制链接]
585|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一、while语句和do...while语句的比较
while语句是先判断条件为“真”时才循环,do...while语句是先进入循环再判断条件为“假”来决定是否终止循环。
int i, sum=0;               int i, sum=0;

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


相关帖子

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

#include <stdio.h>

int main(void)
{
    int i, sum=0;

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

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

        sum = 0;
        do {
            sum = sum + i ;
            i--;
        } while(i > 0);

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

    return 0;
}

结果如下:

使用特权

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

#include <stdio.h>

int main(void)
{
    int x, y;
    scanf("%d", &x);
    scanf("%d", &y);
    if (x == 0) {
        printf("aaaaaa\n");
        goto LA1;    //这是很危险的做法
    }

    if (y == 100) {
LA1:
        printf("bbbbbb\n");
    }

    return 0;
}

结果如下:

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

212

主题

2427

帖子

7

粉丝