作者Hyozero (大寶)
看板C_and_CPP
標題[問題] 在if判斷式裡面賦值與加上|| &&
時間Sun Nov 13 18:29:22 2022
開發平台(Platform): (Ex: Win10, Linux, ...)
Linux
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
GCC
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
如附件程式碼
第7~17行, 在if判斷式裡做賦值 x=n, 會以 if(n) 來做判斷
第21~77行,在if判斷式裡做賦值 x=n, 再加上 || 或 && 做判斷, 為什麼結果cout出來看
x的值只會有1或0呢?
餵入的資料(Input):
預期的正確結果(Expected Output):
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
https://ideone.com/3QRPca
補充說明(Supplement):
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.34.226.230 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1668335366.A.14D.html
※ 編輯: Hyozero (114.34.226.230 臺灣), 11/13/2022 18:29:58
→ cuteSquirrel: 中文書或電子資源查詢: C++運算子優先權 11/13 18:39
→ cuteSquirrel: 英文查 C++ Operator Precedence 11/13 18:39
→ bhbbbbb: 幫1F補充一下,就是以你的 22 行來說,實際上是 if (x = 11/14 13:49
→ bhbbbbb: (3 || x == 2)) 11/14 13:49
→ Hyozero: 感謝大大們解說 ^^ 11/14 22:28
推 wulouise: 如果你要用inline variable 就用if(int x = n; x||a&&b) 11/14 23:29
→ wulouise: C++17以上可用,可讀性比較好 出錯機率低一點..Y 11/14 23:30
→ peter98: 括號請刮好刮滿y 11/25 23:18