[爆卦]while無限迴圈是什麼?優點缺點精華區懶人包

為什麼這篇while無限迴圈鄉民發文收入到精華區:因為在while無限迴圈這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者t78923t (トースト)看板C_and_CPP標題[問題] 使迴圈進行無限次數執行時間Thu...


開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VS 2008

額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)


問題(Question):
我想製造一個可以無限次數執行的迴圈

目前看到的方式是使用kbhit()函數當作do{...} while( )迴圈的終止條件

就是在鍵盤未按下任意鍵時 迴圈不會終止

我想請問還有哪種方式可以造成一樣效果的?

PS:除了while(1){...}這種方式

謝謝。

餵入的資料(Input):


預期的正確結果(Expected Output):


錯誤結果(Wrong Output):


程式碼(Code):(請善用置底文網頁, 記得排版)


補充說明(Supplement):


--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 163.25.118.211
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1450891217.A.CA4.html
BIAO: while(變數)... ?12/24 01:41
winken2004: for(;;)12/24 01:51
1樓指的是像是故意找一個變數,故意讓他不可能不存在來當作終止條件嗎??

請問2樓的意思是??
※ 編輯: t78923t (163.25.118.211), 12/24/2015 02:12:25
※ 編輯: t78923t (163.25.118.211), 12/24/2015 02:15:30
LPH66: 有什麼理由你不想寫 while(1) 或 while(true) 嗎?12/24 02:16
因為我正在使用MFC寫介面 我發現若按鈕按了進入while(1)迴圈後

一旦迴圈出不來介面就會卡住 無法按其他按鈕去執行其他按鈕的功能

順便問一下有沒有什麼函數可以像Find()函數一樣可以搜尋變數內容的?

或是搜尋指標、struct內容的函數?
※ 編輯: t78923t (163.25.118.211), 12/24/2015 03:25:25
※ 編輯: t78923t (163.25.118.211), 12/24/2015 03:28:49
qas612820704: 接到東西break while不就行了嗎 還有你想要無窮for12/24 04:47
qas612820704: 不是也是有一樣的問題12/24 04:47
TobyH4cker: UI Thread進到迴圈了當然卡住啊12/24 05:14
LPH66: 問題就只是樓上講的 UI Thread 被卡住了而已12/24 06:23
rodion: 你需要的是multi-thread... 這是gui程式的必備工具 12/24 10:05
HolyBugTw: 坦白說,我覺得你沒有問對問題12/24 10:50
我有試過開新的thread 但迴圈還是需要無限次跑 或是用其他方式 否則這個thread只跑
了一次
※ 編輯: t78923t (42.73.154.145), 12/24/2015 11:14:19
longlongint: 用 even handle 來做12/24 11:36
longlongint: event12/24 11:36
longlongint: multi-thread 然後把 lock 當接力棒丟 (?12/24 11:38
james732: MFC的話就是把無窮迴圈寫在另一個thread 12/24 11:59
james732: 停止條件就用個event object去檢查吧12/24 12:00
BIAO: 樓上幾位大大都突破盲腸了!12/24 13:14
BIAO: 簡單的說..在Process起來時,啟動一thread,這thread負責12/24 13:15
BIAO: 處理按了button後的措施,這措施通常是SetEvent,12/24 13:16
BIAO: WaitForSingleObject置於new出來這個thread的無窮迴圈內部,12/24 13:18
BIAO: 在程式結束時,一樣會SetEvent給這個同步物件WaitForSingle12/24 13:18
BIAO: Objject,進行資源的釋放。12/24 13:19
BIAO: 這麼做的目的,就是為了避免main thread卡住,new的那個就專12/24 13:20
BIAO: 門用來處理UI後端的資料部份。12/24 13:20
BIAO: 我想你對於這些Windows API不熟,建議你先了解一下這些工具 12/24 13:21
BIAO: 的使用方式,謝謝。 12/24 13:21
BIAO: 以上只是一種做法供你參考,不一定要這樣做,就是一個概念。 12/24 13:33
CumCumCum: 非得主緒執行的話 就用timer吧 12/24 14:18
overhead: 你做mfc一定要開至少兩條thread,總不能你後端運作時,u 12/24 20:08
overhead: ser用的畫面卡住吧 12/24 20:08
謝謝各位的回答!! 請問要開新的thread是不是用add class的方式選CWin thread base來
新增? 這時候專案會出現一個新的有InitInstance()的class
※ 編輯: t78923t (120.126.5.228), 12/25/2015 00:01:17
overhead: 不是很懂 總之你可以用AfxBeginThread 12/25 09:47
justinj: 程式是直線執行的..任何無限迴圈都可以..主要是要有"跳" 12/25 11:15
justinj: 的方法.... 12/25 11:15
boss0405: AfxBeginThread,用法可以上msdn查 12/25 12:34
overhead: 另外建議要再念過multi-thread相關知識 不然容易有bug 12/25 13:27

你可能也想看看

搜尋相關網站