对于C中的循环示例

时间:2015-02-02 20:09:51

标签: c for-loop

所以,我复制了这个,结果是__1。但我真的不明白为什么。有人能解释一下这个问题吗?

#include <stdio.h>

int main(void) {
    int a = 1; 
    int i;
    for (i = -10 ; i < 11 ; ++i) {
        if (i > 0)
            continue;
        else
            break;
        a *= 2;
    };
    printf("%3d\n", a);
    return 0;
}

3 个答案:

答案 0 :(得分:1)

您的for循环是:

for (i = -10 ; i < 11 ; ++i) {
    if (i > 0)
        continue;
    else
        break;
    a *= 2;
};

在第一次迭代中,i为-10。这小于零,因此执行break,将a保留为1。

一般情况下,您可以continuebreak,因此永远无法联系到a*=2

答案 1 :(得分:0)

'break'导致循环终止。删除'break'后再试一次。

更具体地说,你的循环从'i = -10'开始,你立即检查我是否大于零 - 它不是,所以你的'else {break; ''语句执行,在'a'改变之前终止循环。

答案 2 :(得分:0)

出于某种原因,你有一个;在for循环结束时,它也有一个中断,退出循环。