[語法] if的小問題

看板C_and_CPP作者時間15年前 (2009/03/06 21:53), 編輯推噓7(7010)
留言17則, 9人參與, 最新討論串1/1
int main() { int x=10; if(0) if(0) printf("ss"); else printf("qq"); printf("%d",x); system("pause"); return 0; } 為什麼這樣寫 他中間 直接都跳過 輸出10啊.... 謝謝~~~有點急 感謝回答 -- 行列中 作不朽文章, 談笑間 論古今英雄, 痴狂裡 訴紅塵情愛, 來去時 不枉一生風流... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.171.55.121

03/06 21:54, , 1F
沒有輸出qq10
03/06 21:54, 1F

03/06 21:59, , 2F
第一個 if 沒進去 第二個當然也不會進去
03/06 21:59, 2F

03/06 21:59, , 3F
加上 {} 就可以明白了
03/06 21:59, 3F

03/06 21:59, , 4F
第二個if跟else是一組的 全都包含在第一個f
03/06 21:59, 4F

03/06 22:00, , 5F
因為else是對應第二個if 但第二個是在第一個內的
03/06 22:00, 5F

03/06 22:00, , 6F
排版一下就會很清楚了 
03/06 22:00, 6F

03/06 22:00, , 7F
感謝大大 回答 看了大大解說 突然會了
03/06 22:00, 7F

03/06 22:17, , 8F
1.不縮排是壞習慣 2.else會跟最靠近的if結合 除非有{}
03/06 22:17, 8F

03/06 23:25, , 9F
推樓上; 另外, 這類if if else的code, 我寧可都幫它們
03/06 23:25, 9F

03/06 23:25, , 10F
加上{}以示區別, 方便自己除錯, 以後要review也容易:)
03/06 23:25, 10F

03/06 23:50, , 11F
這種寫程式的方式說實在話相當令人生厭...
03/06 23:50, 11F

03/07 01:25, , 12F
這應該是考試題目吧 XD 老師故意出的
03/07 01:25, 12F

03/07 01:26, , 13F
我們系的program language課程有考過類似的題目
03/07 01:26, 13F

03/07 01:27, , 14F
不過老師會排版 看起來不會這麼怪 XD
03/07 01:27, 14F

03/07 12:49, , 15F
我知道的是, 有題目會刻意排錯版來誤導你的Orz
03/07 12:49, 15F

03/08 00:27, , 16F
看不懂的話 加個{} 會清楚很多 只是要清楚範圍..
03/08 00:27, 16F

03/08 20:23, , 17F
對了 這是考試題目.....他更扯 排成一行
03/08 20:23, 17F
文章代碼(AID): #19iIhgs1 (C_and_CPP)