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