这是for循环的正确替代方案吗?

时间:2016-10-14 13:20:07

标签: c++ for-loop

for循环递增变量并继续运行其中的语句集,直到条件为false。 这是for循环的正确替代方法吗?

abc : i++;
if(i<=10)
{    
    goto abc;
}

我的问题是,

这是一个正确的选择吗?如果没有,for循环实际上如何工作?

3 个答案:

答案 0 :(得分:7)

可以从

降低for循环
for(int x = 10; x > 0; x--) {
    cout << x << endl;
}

{
    int x = 10;
    loop: // for doesn't introduce a label
    if(x > 0) {
        {
            cout << x << endl;
        }
        x--;
        goto loop;
    }
}

答案 1 :(得分:2)

以下代码可以替代for循环。您只需要处理所有部分,如初始化,条件,迭代计数等。

int i=0;
abc: i++;
if(i<10){
  printf("i is %d\n", i);
  goto abc;

}

当编译for循环时,汇编程序使用类似goto的语句为循环生成汇编代码(for,while)。但是,建议不要使用goto,因为代码的可读性很低,在某些情况下也可能有害。所以,我们不应该使用它。

答案 2 :(得分:1)

Uah ...... goto仍然被认为是有害的。我不希望改变。

你可以用while循环替换for循环:

for(int i = 0; i < 42; i++) { /* ... */ }

相当于

{
    int i = 0;
    while(i < 42) {
        /* ... */
        i++
    }
}