[英]Incorrect logic in C++
我在C ++中有以下代码:
(其中arr.data[i-1] = 20; arr.date[i] = 30; payload = 50;
)
if (i > 0 && arr.data[i-1] < payload < arr.data[i]) {
cout << arr.data[i-1] << " < " << payload << " < " << arr.data[i] << "\n";
}
我得到的声明返回为
20 < 50 < 30
我做错了什么?
您不能像这样链接比较运算符:
if (i > 0 && arr.data[i-1] < payload < arr.data[i]) {
相反,它应如下所示:
if (i > 0 && arr.data[i-1] < payload && payload < arr.data[i]) {
请注意,您可以在代码中的几个地方进行此操作。
C ++中的关系运算符保持关联性,因此这是实现读取它的方式:
(i> 0 && arr.data [i-1] <有效负载)= TRUE = 1 (布尔逻辑)
因此,( 1 <arr.data [i])= TRUE
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.