作者sjgau (sjgau)
看板C_and_CPP
標題Re: [問題] while(1)的新手疑問
時間Sun Jun 27 10:40:31 2010
這些,都不是好的 CODE。
當然,你可以因為需要而寫出各種 奇怪的 CODE,
但是,請加上適當的註解。
PASCAL 算是一種比較好的語言,
他提供三種回圈,以下是 虛擬碼
FOR I:=1 TO 10 DO BEGIN
...
END;
WHILE (X > Y) DO BEGIN
...
END;
REPEAT
...
UNTIL (X > Y);
理論上,足夠使用到所有的狀況,
當然,需要的時候,還可以配合 GOTO 指令。
曾經有大師級的教授,很正式的公開辯論
是否可以使用 GOTO.
結論是:可以適當的開放使用 GOTO, 但是
必須是 適當的使用 GOTO.
※ 引述《sceneryview (加油~~~)》之銘言:
: 藉由這一篇來請問一個相關的問題
: 在linux kernel的程式中,有時後會見到以下的寫法
: do
: {
: code...
: }while(0);
: 從字面上來看,就是只作一次
: 感覺就沒必要加do {}while(0)了
: 有人知道這種寫法的特殊用意嗎??
: ※ 引述《scrush (阿慶)》之銘言:
: : 不好意思,我一直對while(1)這邊有點不理解,爬文也沒看到我想要的答案才發文,
: : 我常常看到一些 code在程式最底端加上個 while(1){}; 或是while(1){}
: : 請問這是要做什麼用的?有加 ; 跟沒加 ; 有何分別?目的只是讓這段code一直執行嗎?
: : 如果是的話為何不必直接寫 while(1){code} ,用while(1)把程式幫起來不就得了嗎?
: : 還是說目的不同?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.231.90.151
→ final01:大師也講廢話嘛? 06/27 11:33
推 F23ko:其實.... If + goto就可以當迴圈用了..... 06/27 11:51
→ F23ko:之前我在弄RO私服腳本的時候,連迴圈都沒有,就這樣搞.... 06/27 11:52
推 wudidog:了解前與了解後說的廢話,本質上是不同的,不可一概括而論 06/27 12:58
推 pichubaby:其實在ASM裡面是沒有迴圈的指令 迴圈應該也是用 06/27 18:53
→ pichubaby:判斷及跳轉合出來的 06/27 18:54
推 loveflames:有loop 06/27 18:54
→ pichubaby:只是既然說是高階了 基於可讀性而言 這樣跳也很麻煩 06/27 18:55
→ pichubaby:有點像是你要在C++中用malloc也不能說你錯這樣 06/27 18:55