2009-10-03 14 views
6

私はwhileループが何でもできることは知っていますが、forループは何かを行うことはできますか?ForループではありえないWhileループの例

例を示してください。

+2

完全にプログラミング言語に依存します。実際のforループはできません。 – jpfollenius

+1

Smasherが言っているように、無制限の整数と "実際のforループ"を仮定すると、Cを引用した人が誤解しています - ひどく、私は深刻だと思います。 。私はwhileループでそれをする方法を知っています。あなたはfor-loopsでしかできませんか? –

+0

「real for loop」というフレーズを使用すると、同音異義語を構成できます。 「本当のforループ」は不自由なwhileループなので、それほど能力はありませんが、あなたはこのエクササイズから何も学んでいません。 – dmckee

答えて

16

はい、簡単です。

while (cond) S; 

for(;cond;) S; 
+2

これは、C、C++、Java、C#にも当てはまり、おそらくC言語から大量に借りてくる他の多くの言語にも当てはまると付け加えます。パスカル。 – Steve314

+1

私はこの回答について好きなのは、それが実行可能であることと、なぜそれが無意味なのかを同時に示すことです。 –

0

C-ような言語では、このようなループを宣言することができる:言語で

for(; true;) 
{ 
    if(someCondition) 
     break; 
} 

forがより厳密であり、無限ループはwhileループを必要とする場合です。

3

whileループと古典forループは交換可能です:

for (initializer; loop-test; counting-expression) { 
    … 
} 

initializer 
while (loop-test) { 
    … 
    counting-expression 
} 
1

あなたは固定境界とステップがあり、ループの本体内のループ変数の変更を許可しない場合は、ループがプリミティブに対応するために再帰関数。

理論的には、一般的なwhileループより弱いです。たとえば、forループのみでAckermann関数を計算することはできません。

whileループの条件の上限をtrueにすることができれば、それをforループに変換できます。これは、実用的な意味では、宇宙の生命よりも長い天文学的な高さを容易に与えることができるので、違いはないことを示しています。

0

While loopは、for loopと同じくらいの柔軟性を持たず、forループはwhileループよりも読みやすくなります。私は例を挙げて私の主張を示すだろう。 forループとしての形を持つことができます:ループがループし、今日最も近代的な言語については、上記のように使用することはできませんしながら、

for(int i = 0, j = 0; i <= 10; i++, j++){ 
// Perform your operations here. 
} 

Aだけでなくfor each loopを可能にします。

私は、for loopと同じコードを書くことが可能である限り、while loopを使用しないでください。

関連する問題