2009-10-03 45 views
6

我知道while循環可以執行任何for循環,但循環可以執行任何操作嗎?While循環不能用於循環的示例

請提供一個例子。

+2

完全取決於編程語言。一個真正的for循環不能。 – jpfollenius 2009-10-03 17:47:35

+1

假設語言具有無限整數和「真正的循環」,正如Smasher所說的那樣,並且每個引用C誤解的人 - 更糟糕的是,我認爲他們是認真的 - 考慮計算大於給定整數n的第一個素數。我知道如何用while循環來做到這一點。你可以只用for循環嗎? – 2009-10-03 18:42:52

+0

通過使用短語「真正的循環」你構建了一個重言式。一個「真正的循環」是一個殘疾的循環,因此能力較差,但你從練習中沒有學到任何東西。 – dmckee 2009-10-03 19:55:26

回答

16

是的,很容易。

while (cond) S; 

for(;cond;) S; 
+2

我也可以補充一點,這適用於C,C++,Java,C#以及大量其他從C中大量借用的語言,但不適用於例如C語言。帕斯卡爾。 – Steve314 2009-10-03 18:19:47

+1

我喜歡這個答案,它同時表明它可以完成,爲什麼這是毫無意義的事情。 – 2009-12-29 13:10:41

0

在類似C語言中,你可以聲明for循環像這樣:

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. 
} 

while循環,不能像上述用於迴路與當今最現代的語言允許for each loop爲好。

在我看來,我可能有偏見,請原諒,不應該使用while loop,只要可以用for loop寫出相同的代碼即可。