[問題] if後面雙括號??

看板C_and_CPP (C/C++)作者 (戴爾門德‧竇革)時間16年前 (2009/03/17 23:00), 編輯推噓3(3010)
留言13則, 5人參與, 最新討論串1/1
昨天晚上才拿C語言自學手冊Herbert Schildt第三版自己念 幸虧有各位相助,解決了windows裡面沒有compiler的問題 (下載免錢的devcpp) 又幫我解決界面中文化設定的問題 又教我畫面要停留不動 需要寫 #include <stdlib.h> 以及 system("pause"); 這些實際自修C語言時,這本書是沒有講的 順利的唸完並寫完第一章的習題 現在進入2-1 習題2也自己很順利,沒有絲毫問題,正確無誤的寫出來並執行成功! 翻了一下解答,有一個小小地方和我不一樣,但run結果都是正確的 習題是奇偶數判斷,我的是白字部份,習題解答多了紅色部份, 請問高手人,為什麼答案都一樣呢@.@ #include <stdio.h> #include <stdlib.h> int main(void) { int num; printf("Enter a number: "); scanf("%d", &num); if ((num%2) == 1) printf("the number is odd."); if ((num%2) == 0) printf("the number is even."); system("pause"); return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.70.118.181

03/17 23:06, , 1F
因為()的優先權比%高..所以在結果一樣
03/17 23:06, 1F

03/17 23:12, , 2F
其實以本例來說, 紅括號加不加結果應該是一樣的....
03/17 23:12, 2F

03/17 23:12, , 3F
這是operator的優先順序問題, 應該書上翻一翻可以找到:)
03/17 23:12, 3F

03/17 23:13, , 4F
有時候即使已經優先了我也習慣加上括號, 一來避免記錯,
03/17 23:13, 4F

03/17 23:13, , 5F
二來也更明確了表示coder想要的結果....
03/17 23:13, 5F

03/17 23:14, , 6F
只要沒變動順序, 多加的括號應該也沒有效能的衝擊....
03/17 23:14, 6F

03/17 23:14, , 7F
就是讓您的source code肥一點點而已:)
03/17 23:14, 7F

03/17 23:21, , 8F
很多時候括號是加給自己看的。因為不確定程式的優先順序
03/17 23:21, 8F

03/17 23:21, , 9F
所以要用括號去調整
03/17 23:21, 9F

03/17 23:21, , 10F
就像寫數學式 1+2=3 跟 (1+2)=3 兩個是一樣的
03/17 23:21, 10F

03/17 23:26, , 11F
難怪,因為我覺得不用加,compile也會看的懂
03/17 23:26, 11F

03/17 23:27, , 12F
加了是讓自己能夠看的更清楚一點,謝謝高手們!!
03/17 23:27, 12F

03/17 23:34, , 13F
2-3奮戰中
03/17 23:34, 13F
文章代碼(AID): #19lxiSMb (C_and_CPP)
文章代碼(AID): #19lxiSMb (C_and_CPP)