我想知道,而不是使用do-while循環,什麼是等效的for循環或c中的任何其他組合循環?等效使用for-loop代替do-while循環
回答
任何類型的循環都可以由無限「永久」循環和條件語句break
的組合構造而成。
例如,
do {
<action>
} while (<condition>);
轉換爲for
循環,你可以這樣做:
for (;;) {
<action>
if (!<condition>) break;
}
您可以使用同樣的伎倆到do
/while
循環轉換爲while
循環,像這樣:
while (true) {
<action>
if (!<condition>) break;
}
此外,根本不需要循環:上面的任何一個都可以使用頂部的標籤和底部的goto
進行建模;這是在彙編語言中進行循環的常用方式。首先將三種循環結構引入語言的唯一原因是爲了使語言更具表達性:循環比上述任何替代方案都更能使作者的想法更加完善。
所以if(!
@deathshot是的,「突破」條件是否定的「延續」條件。 – dasblinkenlight
沒有其他循環至少執行一次循環內容,就像做一樣。當然你可以模仿做,一邊用標誌和while循環:
do {
A;
} while (B)
成爲
int flag=1;
while (flag || B) {
flag=0;
A;
}
但是這不是一個真正的替代方案,它只是掩蓋了你的原意。
以下三個環都是等價的:
#define FALSE (0)
#define TRUE (!(FALSE))
do
{
status = getStatus();
}
while(status == TRUE);
status = TRUE;
while(status == TRUE)
{
status = getStatus();
}
for(status = TRUE; status == TRUE; status = getStatus())
{
}
'status == true'? –
@OliCharlesworth謝謝。 –
噢,我真的暗示那會被慣用地寫成'status',而不是'status == true'。 –
- 1. 使用colMonitoredevents時DoWhile循環卡住
- 2. 在python中用等效的matlab代替循環
- 3. 在While循環中變換doWhile
- 4. LINQ中For循環的等效代碼
- 5. 高效算法代替循環
- 6. 替代使用setInterval()循環使用
- 7. 替代「while」循環
- 8. 嵌套循環等效
- 9. For循環等效Swift 3
- 10. C#`foreach`循環C等效
- 11. 替代記錄使用ADO循環
- 12. 使用For循環代替If語句
- 13. 替代在EntityCollection中使用foor循環?
- 14. 使用map函數代替for循環
- 15. 使用For循環代替Python中的While循環
- 16. For循環代替while循環
- 17. 迴文 - while循環代替循環
- 18. 用更高效的代碼替換While循環嗎?
- 19. 使用while循環等待?
- 20. 替代R中循環
- 21. 替代while while循環
- 22. For循環的SQL替代
- 23. 替代SQL中的「循環」?
- 24. Itertools代替嵌套循環
- 25. Scala替代無限循環
- 26. PHP循環代替標籤
- 27. 替代嵌套for循環
- 28. javascript循環變量替代
- 29. 嵌套while循環替代
- 30. python循環代替遞歸
你覺得呢? do-while(vs直接'while')的主要問題是循環總是迭代至少一次。 –