繁体   English   中英

C ++中的逻辑不正确

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM