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

作者: Hyozero (1)   2022-11-13 18:29:22
開發平台(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):
作者: cuteSquirrel (松鼠)   2022-11-13 18:38:00
https://i.imgur.com/fM1B9ue.png中文書或電子資源查詢: C++運算子優先權英文查 C++ Operator Precedence
作者: bhbbbbb (影)   2022-11-14 13:49:00
幫1F補充一下,就是以你的 22 行來說,實際上是 if (x =(3 || x == 2))
作者: Hyozero (1)   2022-11-14 22:28:00
感謝大大們解說 ^^
作者: wulouise (在線上!=在電腦前)   2022-11-14 23:29:00
如果你要用inline variable 就用if(int x = n; x||a&&b)C++17以上可用,可讀性比較好 出錯機率低一點..Y
作者: peter98 (新兵)   2022-11-25 23:18:00
括號請刮好刮滿y

Links booklink

Contact Us: admin [ a t ] ucptt.com