Questions tagged «conditional-operator»

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


9
如果另有声明,如何做一线?
我可以像在php中那样在go(golang)中编写带有变量赋值的简单if-else语句吗?例如: $var = ( $a > $b )? $a: $b; 目前,我必须使用以下内容: var c int if a > b { c = a } else { c = b } 抱歉,如果此控制声明我不能记住名字,并且我无法在现场或通过Google搜索找到信息。:/

17
使用条件?:(三元)运算符的好处
与标准的if-else语句相反,?:运算符的优缺点是什么?显而易见的是: 条件?:运算符 处理直接值比较和赋值时更短,更简洁 似乎不如if / else构造灵活 标准If / Else 可以应用于更多情况(例如函数调用) 经常不必要地长 每种陈述的可读性似乎各不相同。在第一次接触?:运算符之后的一小段时间里,我花了一些时间来确切地了解它的工作方式。如果我与许多非程序员一起工作,您是否会建议尽可能使用它,还是坚持使用?


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 > six ? two : six); //param: double Write(two > six ? two : "6"); //param: not object Write(two > six ? new List<int>() : new List<string>()); //param: not object …


12
Java为什么没有条件和和条件或运算符的复合赋值版本?(&& =,|| =)
因此,对于在布尔二元运算符,Java有&,|,^,&&和||。 让我们在这里简要总结一下他们的工作: JLS 15.22.2布尔逻辑运算符&,^和| JLS 15.23条件与运算符&& JLS 15.24条件或运算符|| 对于&,结果值是true两个操作数都为true; 否则,结果为false。 对于|,结果值是false两个操作数都为false; 否则,结果为true。 对于^,结果值是true操作数值是否不同;否则,结果为false。 该&&操作是一样&,但是评估其右边的操作数只有在其左侧的值操作数true。 该||操作是一样|的,但评估其右边的操作数只有在其左侧的值操作数false。 现在,所有5间,那些3有复合赋值版本,分别为|=,&=和^=。所以我的问题是显而易见的:为什么不是Java提供&&=和||=呢?我发现我需要那些比我更需要&=和|=。 而且我不认为“因为它太长”是一个很好的答案,因为Java具有>>>=。一定有一个更好的理由可以忽略这一点。 从15.26分配运算符开始: 有12个赋值运算符;[...]= *= /= %= += -= <<= >>= >>>= &= ^= |= 有人评论说,如果&&=和||=被实施,那么它将是唯一不首先评估右侧的运营商。我认为,复合赋值运算符首先评估右侧的这一观点是错误的。 从15.26.2复合赋值运算符开始: 形式的复合赋值表达式E1 op= E2等效于E1 = (T)((E1) op (E2)),其中T是的类型E1,不同之处在于该表达式E1仅被评估一次。 为了证明这一点,以下代码段抛出NullPointerException,而不是ArrayIndexOutOfBoundsException。 int[] a = null; int[] b = {}; a[0] += …



5
没有别的Ruby三元运算符
就像一个简单的命令一样,是否有红宝石成语用于“ If do-this”和“ do-this”? 例如,我目前正在做 object.method ? a.action : nil 将else子句留空,但我觉得可能有一种更惯用的方式,而不必在最后指定nil。(或者,我觉得在这种情况下占用多行代码会很浪费。


6
C#条件AND(&&)或(||)优先
我们一直在工作中遇到不必要的编码参数。今天,我问条件AND(&&)或OR(||)是否具有更高的优先级。我的一位同事坚持认为他们的优先级相同,我对此表示怀疑,因此我进行了查找。 根据MSDN,AND(&&)的优先级高于OR(||)。但是,您可以向一个持怀疑态度的同事证明吗? http://msdn.microsoft.com/zh-CN/library/aa691323(VS.71).aspx bool result = false || true && false; // --> false // is the same result as bool result = (false || true) && false; // --> false // even though I know that the first statement is evaluated as bool result = false || (true && …



4
自动拆箱需要三元if-else
这段代码可以正常工作:- Integer nullInt = null; if (1 <= 3) { Integer secondNull = nullInt; } else { Integer secondNull = -1; } System.out.println("done"); 但这会引发空指针异常,而Eclipse警告需要自动拆箱:- Integer nullInt = null; Integer secondNull = 1 <= 3 ? nullInt : -1; System.out.println("done"); 为什么会这样,请有人指导吗?

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.