if...else區間 |
答題得分者是:justdo
|
Smallcat7315
一般會員 ![]() ![]() 發表:19 回覆:22 積分:7 註冊:2005-05-02 發送簡訊給我 |
|
IORIS
一般會員 ![]() ![]() 發表:15 回覆:21 積分:7 註冊:2005-01-14 發送簡訊給我 |
不好意思我看不太懂你的問題
if (b>50) {printf("good");} else {printf("not good");}你是指 爲什麼 上面的{}都可以省略嗎? 如果是這個問題的話 一般來說if else 之後若沒有{} 程式會把第一個分號 當成結束點 而且一般來說 若if else 之後如果只要執行一個動作 也就是只有一行程式 就可以直接省略{} 若今天 你的程式變成 if (b>50) { printf("good"); printf("very good"); } else { printf("not good"); printf("so bad"); }此時{}就一定得加不可省略 這是我的想法拉 不知道是不是你要問的 發表人 - ioris 於 2005/10/04 19:14:40 |
Smallcat7315
一般會員 ![]() ![]() 發表:19 回覆:22 積分:7 註冊:2005-05-02 發送簡訊給我 |
引言: 不好意思我看不太懂你的問題我的意思就是 原來 if (a>60) { if (b>50) printf("good"); else printf("not good"); } 也可是 if (a>60) if (b>50) printf("good"); else printf("not good"); 結果一樣 且else是與他最近的if為一組 看起來好怪 為啥可以 >.<if (b>50) {printf("good");} else {printf("not good");}你是指 爲什麼 上面的{}都可以省略嗎? 如果是這個問題的話 一般來說if else 之後若沒有{} 程式會把第一個分號 當成結束點 而且一般來說 若if else 之後如果只要執行一個動作 也就是只有一行程式 就可以直接省略{} 若今天 你的程式變成if (b>50) { printf("good"); printf("very good"); } else { printf("not good"); printf("so bad"); }此時{}就一定得加不可省略 這是我的想法拉 不知道是不是你要問的 發表人 - ioris 於 2005/10/04 19:14:40 |
IORIS
一般會員 ![]() ![]() 發表:15 回覆:21 積分:7 註冊:2005-01-14 發送簡訊給我 |
假如是另一個情況
你是指
if (a>60) { if (b>50) printf("good"); else printf("not good"); }這個{}省略的話 會有錯誤喔 輸出結果會變成 a>60 b>50對 a<60 b>50錯 a>60 b<50 對 a<60 b<50 錯 因為程式碼變成 if (a>60) if (b>50) printf("good"); else printf("not good");也就是說else會變成是第一個if 的 else 目前手邊電腦沒有程式可以跑 是直接用 推測的...結果不知道有沒有出入 不知這樣能解決你的問題嗎? 發表人 - ioris 於 2005/10/04 20:01:32 |
Smallcat7315
一般會員 ![]() ![]() 發表:19 回覆:22 積分:7 註冊:2005-05-02 發送簡訊給我 |
引言: 假如是另一個情況 你是指if (a>60) { if (b>50) printf("good"); else printf("not good"); } 等於下面的 if (a>60) if (b>50) printf("good"); else printf("not good"); 為何有{}跟沒{}是一樣的 不知道大大回答的是不是我低疑問 搞混哩@@~!!! 發表人 - smallcat7315 於 2005/10/04 20:06:44if (a>60) { if (b>50) printf("good"); else printf("not good"); }這個{}省略的話 會有錯誤喔 輸出結果會變成 a>60 b>50對 a<60 b>50錯 a>60 b<50 對 a<60 b<50 錯 因為程式碼變成if (a>60) if (b>50) printf("good"); else printf("not good");也就是說else會變成是第一個if 的 else 不知這樣能解決你的問題嗎? |
justdo
高階會員 ![]() ![]() ![]() ![]() 發表:2 回覆:359 積分:222 註冊:2004-08-17 發送簡訊給我 |
IORIS 所言有誤.. else 會自動去對應最近的if
所以是
if (a>60) if (b>50) printf("good"); else printf("not good");而非 if (a>60) if (b>50) printf("good"); else printf("not good");依照c的語法,if 後面如果只接一個指令,則{}可省略 所以 if (xxx) { do_something; }等同 if (xxx) do_something;而一個if的完整述句又剛好可視為一個指令,故上面的do_something可用另外一個if句子替代 if (xxx) if (yyy) do_anotherthing; else do_xxxthing;這個就是你最原先問的情況了 |
IORIS
一般會員 ![]() ![]() 發表:15 回覆:21 積分:7 註冊:2005-01-14 發送簡訊給我 |
|
Smallcat7315
一般會員 ![]() ![]() 發表:19 回覆:22 積分:7 註冊:2005-05-02 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |