作者game0416 (鳳狼)
看板NTUE-CS102
標題Re: [閒聊] 函式...
時間Wed Dec 9 23:13:28 2009
※ 引述《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