[問題] 在if判斷式裡面賦值與加上|| &&

看板C_and_CPP (C/C++)作者 (大寶)時間2年前 (2022/11/13 18:29), 2年前編輯推噓2(206)
留言8則, 4人參與, 2年前最新討論串1/1
開發平台(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

11/13 18:38, 2年前 , 1F

11/13 18:39, 2年前 , 2F
中文書或電子資源查詢: C++運算子優先權
11/13 18:39, 2F

11/13 18:39, 2年前 , 3F
英文查 C++ Operator Precedence
11/13 18:39, 3F

11/14 13:49, 2年前 , 4F
幫1F補充一下,就是以你的 22 行來說,實際上是 if (x =
11/14 13:49, 4F

11/14 13:49, 2年前 , 5F
(3 || x == 2))
11/14 13:49, 5F

11/14 22:28, 2年前 , 6F
感謝大大們解說 ^^
11/14 22:28, 6F

11/14 23:29, 2年前 , 7F
如果你要用inline variable 就用if(int x = n; x||a&&b)
11/14 23:29, 7F

11/14 23:30, 2年前 , 8F
C++17以上可用,可讀性比較好 出錯機率低一點..Y
11/14 23:30, 8F
文章代碼(AID): #1ZSCS65D (C_and_CPP)
文章代碼(AID): #1ZSCS65D (C_and_CPP)