[问题] 在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