for
ループは変数をインクリメントし、条件がfalseになるまで変数を継続して実行します。 これはfor
ループの正しい代替ですか?これは正しい代替私の質問があるこれはforループの正しい代替ですか?
abc : i++;
if(i<=10)
{
goto abc;
}
、
ですか?そうでない場合は、for
ループは実際にどのように機能しますか?
for
ループは変数をインクリメントし、条件がfalseになるまで変数を継続して実行します。 これはfor
ループの正しい代替ですか?これは正しい代替私の質問があるこれはforループの正しい代替ですか?
abc : i++;
if(i<=10)
{
goto abc;
}
、
ですか?そうでない場合は、for
ループは実際にどのように機能しますか?
に低下させることができます。あなただけの
}
for
ループがコンパイルされると、アセンブラはのためのアセンブリコードを生成するのgotoのようなステートメントを使用しています
int i=0;
abc: i++;
if(i<10){
printf("i is %d\n", i);
goto abc;
など、初期化、条件、反復回数などのすべての部分の世話をする必要がありますループ(for、while)ただし、コードの可読性が低く、また場合によっては有害である可能性があるため、
goto
を使用することはお勧めしません。だから、私たちはそれを使うべきではありません。
for
ループは、以下のコードは、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;
}
}
UAH ... goto
は依然として有害であると考えられています。そして私はそれが変わることを期待していません。
あなたは、whileループとforループを置き換えることができます。
for(int i = 0; i < 42; i++) { /* ... */ }
はあなたのバージョンが停止することはありません
{
int i = 0;
while(i < 42) {
/* ... */
i++
}
}
番に相当し、 'goto'無条件であるから。 – Carcigenicate
なぜあなたは_alternative_をforループにしますか? –
後藤はしばしば[有害であるとみなされます](http://www.u.ar.edu/~rubinson/copyright_violations/Go_To_Considered_Harmful.html)。 –