我已经阅读了很多代码,他们有if语句,我注意到其他语言使用它。 Asp是其中之一。 尝试谷歌搜索,但无法找到答案。
?:
究竟代表什么以及何时使用它。
据我所知,?
等于if()
且:
等于}else{
。
答案 0 :(得分:7)
它是ternary operator(尽管在大多数语言中它更好地命名为“条件运算符”)。
人们经常会错误地将其称为“速记if / else”。但这是用词不当; if/else
是一个声明,?:
是一个表达式。在大多数语言中,这些是不同的概念,具有不同的语义。
答案 1 :(得分:2)
这称为ternary operator。
在某些情况下,它旨在简化代码。考虑一下:
var str;
if(some_condition)
str = 'yes';
else
str = 'no';
这可以很容易地重写为
var str = some_condition ? 'yes' : 'no';
答案 2 :(得分:1)
你的假设是对的。
答案 3 :(得分:1)
基本上,语法是condition ? then-expession : else-expression
。通常,它用于分配变量:
varname = something == 123 ? "yes" : "no";
但它几乎可以用在任何地方代替价值。它对于避免重复代码非常有用:
if( something == 123) {
varname = "yes";
}
else {
varname = "no";
}
答案 4 :(得分:0)
在Java中,它是if / else关系。
三元操作的一个例子:
boolean bool = (x==1) ? true : false;
答案 5 :(得分:0)
您可以阅读documentation。您正在寻找的部分名为" Ternary Operator"。
答案 6 :(得分:0)
通过使用条件运算符,您可以更简洁地表达可能需要if-else结构的计算。例如,以下代码首先使用if语句,然后使用条件运算符在计算sin函数之前检查可能的除零错误。
if(x != 0.0) s = Math.Sin(x)/x; else s = 1.0;
s = x != 0.0 ? Math.Sin(x)/x : 1.0;
来自http://msdn.microsoft.com/en-us/library/ty67wk28(v=vs.90).aspx