我正在使用 ? 运算符,我想表达以下内容
(a > b) ? (max = a) : (); // basically i want expression after `:` to be null
:
如果我在编译器抱怨语法不正确后留下空括号。:
在空后留下表达式的正确语法是什么?
我正在使用 ? 运算符,我想表达以下内容
(a > b) ? (max = a) : (); // basically i want expression after `:` to be null
:
如果我在编译器抱怨语法不正确后留下空括号。:
在空后留下表达式的正确语法是什么?
我喜欢简洁的代码?操作员
if (a > b) max = a;
如果我们计算字符,则更简洁。这是一个可怕的指标。
理想情况下,您的三元运算符不应引起副作用。在三元运算符中隐藏副作用会使代码更难阅读/调试/维护等。
如果您想要副作用,请不要涉及三元运算符。
如果您想为此使用三元运算符,请考虑max = (a > b) ? a : max
.
给你三元运算符。它的形式
<condition> ? <r-value1> : <r-value2>
如果条件为真,则返回 r-value1。否则,它返回 r-value2。
所以做你想做的一种方法是:
(a > b) ? (max = a) : 0;
0 是相同类型的 r 值,所以没关系。
但是,请注意,这是一种糟糕的代码编写方式。它不是很可读。
作为一个学习练习,没关系,但除此之外,正如大家所说,使用
if (a>b) max=a;
这被称为三元运算符,就它而言,实际上并没有一种干净的方法可以将其留空。有一个看起来像这样的工作:
(a > b)?max=a:max=max;
但这真的不是太有效。处理它的最有效方法是提到@ta-speot,并使用缩写的条件语句而不是三元运算符