for
循环递增变量并继续运行其中的语句集,直到条件为false。
这是for
循环的正确替代方法吗?
abc : i++;
if(i<=10)
{
goto abc;
}
我的问题是,
这是一个正确的选择吗?如果没有,for
循环实际上如何工作?
答案 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++
}
}