指某东西的用途 ”?”和“:”

时间:2012-03-15 23:19:48

标签: php javascript asp.net

我已经阅读了很多代码,他们有if语句,我注意到其他语言使用它。 Asp是其中之一。 尝试谷歌搜索,但无法找到答案。

?:究竟代表什么以及何时使用它。

据我所知,?等于if():等于}else{

7 个答案:

答案 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)

你的假设是对的。

这是Ternary operation (Wikipedia)

答案 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;

http://en.wikipedia.org/wiki/Ternary_operation

答案 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