簡體   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