[英]How can I write the "?:" statements without using the '?' (question mark)?
node1 和 node2 是鏈表的節點。
Node* node1, Node* node2;
int carry = 0;
int sum;
sum = carry + (node1 ? node1->data : 0) + (node2 ? node2->data : 0);
由於x ? y : z
x ? y : z
就像if(x) y else z
我試過了
if (node1 && node2)
sum = carry + node1->data + node2->data;
else if(node1 && !node2)
sum = carry + node1->data;
else if(!node1 && node2)
sum = carry + node2->data;
else if(!node1 && !node2)
sum = carry;
我們可以像使用布爾值一樣使用節點嗎? 如果沒有,我如何在不使用問號的情況下編寫此語句?
那個? :
? :
被稱為條件運算符(或在類 C 語言的上下文中有時稱為三元運算符)。 在 C++ x ? y : z
x ? y : z
與if (x) y else z
完全一樣if (x) y else z
只是if else
塊不是表達式並且不返回值。 那么,如果您可以使用node ?
那么你可以使用if (node)
,任何數字表達式都可以轉換為布爾表達式
但是,您實際上並沒有組合 2 個三元表達式,並且需要這么多 if 塊。 就像如何評估三元表達式一樣
sum = carry
if (node1)
sum += node1->data;
if (node2)
sum += node2->data;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.