看板 NTUE-CS102 關於我們 聯絡資訊
※ 引述《j2612280 (翔風~安)》之銘言: : 看了一下錯的程式碼: : while(f()!=3){ : f(); : } : 還滿多人用這種方式的... : 錯在哪咧?? : f()寫了兩次 : 所以第一次的錯會讓while成立而繼續往下執行 : 跑到第二個f()時 因為沒有做任何動作 僅僅是f();在那 : 所以就被忽略啦~ : 這時第一次就跑完了 : 再來回到while跑第二次while(f()!=3) : 這時輸入結果為3A的話 回傳值就會是3了~就會變成while(0) 我倒是覺得看函式內容怎麼寫... 會有這種問題主要還是cin、cout都擺在函式內去了 不然多的那次就跟空白的是一樣的QQ 是說我覺得一步一步說明這段code發生什麼事比較好 也就是說: 進入while← ← ← ← ← ← ← ← ← ┐ ↓ ↑ 處理判斷式 → (1) 3跟f()比較,此時處理f()一次內的所有命令 ↓ (2) ↑ 進入while敘述 ↓ ↑ 執行敘述中的f(),變成在這單次的while迴圈內容中執行第二次f() ↓ ↑ 回到開頭 → → → → → → → → ┘ : so~懂了吧~^.^ : 還有另一個是函式的使用 : 如果是 int f(){} : 那f()就代表是一個整數值 會回傳一個整數值 : 所以正確的寫是 : int f(){ : return 0; : } return數值時,該函式就結束了...一般習慣用0表示結束 可以依照使用需求由使用者自行設定這樣 嚴謹來說,main裏頭也在最後return 0會比較洽當; 相反,就算宣告成int也能不加return,反正也是一行一行到底 使用者感覺上就跟void無異...當然對電腦有些差別在 不過老師沒特別提這個的樣子,還是我又發呆了(死) : 再來是不回傳值 void f(){} : 顧名思義就是沒有return了...就是這樣(解釋好爛=0=... : ps...不要噓我呀...另外再宣傳一下我的論壇XD~ http://307.now.to/ 我要黑特一下,這個申請帳號不會太複雜了嗎 - -+ -- 本命 ○楽園の巫女  博麗 霊夢 職業:博麗神社の巫女さん  Hakurei Reimu   能力:主に空を飛ぶ程度の能力 @東方project系列 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 115.43.39.145
Arashinoon:真的頗難辦 機車版主 XX!! 12/09 23:43
j2612280:嘛...就想管控一下有誰是會員呀@@"... 12/09 23:45