Questions tagged «ternary-operator»

条件运算符是三元运算符,它是几种编程语言中基本条件表达式的语法的一部分。它通常也称为三元运算符或inline if。对于相同的构造,不同的语言具有不同的语法,但是所有语言都根据条件在两个选项之一之间进行选择。

16
什么是Java?:运算符,它的作用是什么?
我已经使用Java几年了,但是直到最近我还没有遇到过这种构造: int count = isHere ? getHereCount(index) : getAwayCount(index); 这可能是一个非常简单的问题,但是有人可以解释吗?我该如何阅读?我很确定我知道它是如何工作的。 如果isHere为真,getHereCount()则称为 如果isHere为假,getAwayCount()则调用。 正确?这个结构叫做什么?

13
如何在PHP中使用三元运算符(?:)作为“ if / else”的简写?
根据此页面上的示例,我在下面有工作和非工作代码示例。 工作代码使用if语句: if (!empty($address['street2'])) echo $address['street2'].'<br />'; 使用三元运算符的非工作代码: $test = (empty($address['street2'])) ? 'Yes <br />' : 'No <br />'; // Also tested this (empty($address['street2'])) ? 'Yes <br />' : 'No <br />'; 更新 在Brian提出技巧之后,我发现echo $test输出了预期的结果。以下作品令人着迷! echo (empty($storeData['street2'])) ? 'Yes <br />' : 'No <br />';

4
Java三元运算符与<JDK8兼容性中的if / else
最近,我正在阅读Spring Framework的源代码。我不明白的地方在这里: public Member getMember() { // NOTE: no ternary expression to retain JDK &lt;8 compatibility even when using // the JDK 8 compiler (potentially selecting java.lang.reflect.Executable // as common type, with that new base class not available on older JDKs) if (this.method != null) { return this.method; } else …

4
AngularJS if-then-else表达式中的构造
我可以在angularjs表达式中以某种方式使用if-then-else构造(三元运算符),例如,我有必须返回bool值的函数$ scope.isExists(item)。我想要这样的东西 &lt;div ng-repeater="item in items"&gt; &lt;div&gt;{{item.description}}&lt;/div&gt; &lt;div&gt;{{isExists(item) ? 'available' : 'oh no, you don't have it'}}&lt;/div&gt; &lt;/div&gt; 我知道我可以使用返回字符串的函数,对于在表达式中使用if-then-else构造的可能性我很有趣。谢谢。

2
从Java 7开始,Java中的三元运算符仅评估一个表达式-Java 1.6和更低版本中的表达式不同吗?
在准备Oracle认证Java SE 8程序员1认证考试时,我在官方学习指南中遇到了有关三元表达式的以下段落: 三元表达式评估 从Java 7开始,将仅在运行时评估三元运算符的右侧表达式之一。以类似于短路运算符的方式,如果三元运算符中的两个右手表达式之一执行了副作用,那么它可能不会在运行时应用。让我们通过以下示例来说明这一原理:[...] 它说仅对两个表达式之一进行求值,并通过以下示例进行演示: int y = 1; int z = 1; int a = y &lt; 10 ? y++ : z++; 在这里,仅y增加,但z没有增加,正如您期望的那样。 我遇到的是该段落的开头(以黄色标记),该段落的内容为“从Java 7开始,...”。我使用Java 1.6测试了相同的代码,但在行为上没有发现差异。我希望Java 1.6仅根据本段给出的信息来评估这两个表达式。有谁知道他们想对“从Java 7开始...”说什么? 编辑:为避免混淆:归结为一个问题,因为他们编写了“从Java 7开始”,从Java 6切换到Java 7时,关于三元运算符有什么变化吗?

7
Javascript简写三元运算子
我知道在php 5.3中,而不是使用这种冗余的三元运算符语法: startingNum = startingNum ? startingNum : 1 ...如果适用,我们可以为三元运算符使用简写语法: startingNum = startingNum ?: 1 而且我了解javascript中的三元运算符: startingNum = startingNum ? startingNum : 1 ...但是有速记吗?

5
C#和Java三元运算符(?:)之间的区别
我是C#新手,刚遇到问题。处理三元运算符(? :)时,C#和Java之间有所不同。 在以下代码段中,为什么第四行不起作用?编译器显示错误消息there is no implicit conversion between 'int' and 'string'。第五行效果不佳。两者List都是对象,不是吗? int two = 2; double six = 6.0; Write(two &gt; six ? two : six); //param: double Write(two &gt; six ? two : "6"); //param: not object Write(two &gt; six ? new List&lt;int&gt;() : new List&lt;string&gt;()); //param: not object …

9
?:?? 运算符代替IF | ELSE
public string Source { get { /* if ( Source == null ){ return string . Empty; } else { return Source; } */ return Source ?? string.Empty; } set { /* if ( Source == null ) { Source = string . Empty; } else { if ( Source …


7
为什么使用三元运算符在宏中定义1和0?
我正在将SDK用于嵌入式项目。在此源代码中,我找到了一些至少是我特有的代码。SDK的许多地方都有这种格式的源代码: #define ATCI_IS_LOWER( alpha_char ) ( ( (alpha_char &gt;= ATCI_char_a) &amp;&amp; (alpha_char &lt;= ATCI_char_z) ) ? 1 : 0 ) #define ATCI_IS_UPPER( alpha_char ) ( ( (alpha_char &gt;= ATCI_CHAR_A) &amp;&amp; (alpha_char &lt;= ATCI_CHAR_Z) ) ? 1 : 0 ) 在这里使用三元运算符有什么区别吗? 是不是 #define FOO (1 &gt; 0) 与...相同 #define BAR ( …

10
如何编写PHP三元运算符
这个问题已经在这里有了答案: 在PHP中堆叠多个三元运算符 (9个答案) 5个月前关闭。 如何用elseif部分编写PHP三元运算符? 我看到了带有PHP三元运算符if和else部分的基本示例,如下所示: echo (true) ? "yes" : "no"; //prints yes echo (false) ? "yes" : "no"; //prints no 我如何将这样的“ elseif”部分放入三元运算符中? &lt;?php if($result-&gt;vocation == 1){ echo "Sorcerer"; }else if($result-&gt;vocation == 2){ echo 'Druid'; }else if($result-&gt;vocation == 3){ echo 'Paladin'; }else if($result-&gt;vocation == 4){ echo 'Knight'; }else if($result-&gt;vocation …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.