Questions tagged «conditional-operator»

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


5
单行列表理解:if-else变体
更多有关python列表理解语法的信息。我有一个列表推导,它产生给定范围的奇数列表: [x for x in range(1, 10) if x % 2] 这将构成一个过滤器-我有一个源列表,其中删除了偶数(if x % 2)。我想在这里使用if-then-else之类的东西。以下代码失败: >>> [x for x in range(1, 10) if x % 2 else x * 100] File "<stdin>", line 1 [x for x in range(1, 10) if x % 2 else x * 100] ^ SyntaxError: …

27
如何检查我的字符串是否等于null?
仅当我的字符串具有有意义的值时,我才想执行一些操作。所以,我尝试了这个。 if (!myString.equals("")) { doSomething } 还有这个 if (!myString.equals(null)) { doSomething } 还有这个 if ( (!myString.equals("")) && (!myString.equals(null))) { doSomething } 还有这个 if ( (!myString.equals("")) && (myString!=null)) { doSomething } 还有这个 if ( myString.length()>0) { doSomething } 在所有情况下doSomething,尽管我的字符串为EMPTY,但我的程序仍然有效。等于null。那么,这有什么问题呢? 添加: 我找到了问题的原因。该变量被声明为字符串,结果,null分配给该变量的结果变为"null"!因此,if (!myString.equals("null"))作品。

16
使用Null合并运算符的独特方法
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2个月前关闭。 改善这个问题 我知道在C#中使用Null合并运算符的标准方法是设置默认值。 string nobody = null; string somebody = "Bob Saget"; string anybody = ""; anybody = nobody ?? "Mr. T"; // returns Mr. T anybody = somebody ?? "Mr. T"; // returns "Bob Saget" 但是还有什么??用呢?它看起来不像三元运算符有用,除了比以下内容更简洁和易于阅读之外: nobody = null; anybody = nobody == null ? "Bob Saget" …

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

5
?的可空类型问题:条件运算符
有人可以解释为什么这在C#.NET 2.0中有效: Nullable<DateTime> foo; if (true) foo = null; else foo = new DateTime(0); ...但这不是: Nullable<DateTime> foo; foo = true ? null : new DateTime(0); 后一种形式给我带来了一个编译错误“无法确定条件表达式的类型,因为'<null>'和'System.DateTime'之间没有隐式转换。” 不是说我不能使用前一种样式,而是第二种样式与我的其余代码更加一致。

4
如果[false]则重击;返回true
这周一直在学习bash并遇到障碍。 #!/bin/sh if [ false ]; then echo "True" else echo "False" fi 即使条件似乎表明并非如此,这也将始终输出True。如果我卸下支架,[]那么它可以工作,但我不明白为什么。


7
为什么“ sizeof(a?true:false)”给出四个字节的输出?
我有一小段关于sizeof三元运算符的代码: #include <stdio.h> #include <stdbool.h> int main() { bool a = true; printf("%zu\n", sizeof(bool)); // Ok printf("%zu\n", sizeof(a)); // Ok printf("%zu\n", sizeof(a ? true : false)); // Why 4? return 0; } 输出(GCC): 1 1 4 // Why 4? 但在这里, printf("%zu\n", sizeof(a ? true : false)); // Why 4? 三元运算符返回booleantype,sizeof …


1
树枝:如果有多个条件
似乎我的树枝if语句有问题。 {%if fields | length > 0 || trans_fields | length > 0 -%} 错误是: Unexpected token "punctuation" of value "|" ("name" expected) in 我不明白为什么这行不通,就像树枝被所有管道弄丢了一样。 我已经试过了: {% set count1 = fields | length %} {% set count2 = trans_fields | length %} {%if count1 > 0 || count2 > 0 …

5
为什么在真实情况下带逗号的三元运算符只求一个表达式?
我目前正在使用C ++ Primer一书学习C ++,这本书中的练习之一是: 说明以下表达式的作用: someValue ? ++x, ++y : --x, --y 我们知道什么?我们知道,三元运算符的优先级高于逗号运算符。对于二元运算符,这很容易理解,但是对于三元运算符,我有点挣扎。对于二进制运算符,“具有更高的优先级”意味着我们可以在具有更高优先级的表达式周围使用括号,并且不会更改执行。 对于三元运算符,我将执行以下操作: (someValue ? ++x, ++y : --x, --y) 有效地产生相同的代码,这无助于我理解编译器如何对代码进行分组。 但是,通过使用C ++编译器进行测试,我知道表达式可以编译,而且我不知道:运算符本身可以代表什么。因此,编译器似乎正确地解释了三元运算符。 然后,我通过两种方式执行该程序: #include <iostream> int main() { bool someValue = true; int x = 10, y = 10; someValue ? ++x, ++y : --x, --y; std::cout << …

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 />';

7
Javascript三元运算符的运算符优先级
我似乎无法与三元运算符结合使用此代码的第一部分(+ =)。 h.className += h.className ? ' error' : 'error' 我认为这段代码的工作方式如下: h.className = h.className + h.className ? ' error' : 'error' 但这是不正确的,因为这会导致控制台出现错误。 所以我的问题是我应该如何正确插入此代码?

8
CSS“ and”和“ or”
我遇到了很大的麻烦,因为我需要对某些输入类型进行样式化。我有类似的东西: .registration_form_right input:not([type="radio") { //Nah. } 但是我也不想设置复选框的样式。 我试过了: .registration_form_right input:not([type="radio" && type="checkbox"]) .registration_form_right input:not([type="radio" && "checkbox"]) .registration_form_right input:not([type="radio") && .registration_form_right input:not(type="checkbox"]) 如何使用&&?而且我需要尽快使用||,我认为用法将是相同的。 更新: 我仍然不知道如何使用||和&&正确。我在W3文档中找不到任何内容。

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.