使用“";以及“:&”;


The use of "?" and ":"

我已经阅读了很多代码,其中包含if语句,我注意到其他语言也使用了这一点。Asp就是其中之一。尝试过谷歌搜索,但找不到答案。

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

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

它是三元运算符(尽管在大多数语言中,它最好命名为"条件运算符")。

人们经常会错误地将其称为"如果/其他的简写"。但这用词不当;if/else是一个语句,?:是一个表达式。在大多数语言中,这些都是不同的概念,具有不同的语义。

这被称为三元运算符。

在某些情况下,它旨在简化代码。考虑一下:

var str;
if(some_condition)
  str = 'yes';
else
  str = 'no';

这可以很容易地重写为

var str = some_condition ? 'yes' : 'no';

您的假设是正确的。

这是一个三元运算(维基百科)

本质上,语法是condition ? then-expession : else-expression。通常用于分配变量:

varname = something == 123 ? "yes" : "no";

但它几乎可以用在任何地方来代替价值。它对避免重复代码最有用:

if( something == 123) {
    varname = "yes";
}
else {
    varname = "no";
}

您可以阅读文档。您要查找的部分标题为"三元运算符"。

通过使用条件运算符,可以更简洁地表达可能需要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

在Java中,这是一种if/else关系。

三元运算的一个例子:

boolean bool = (x==1) ? true : false;

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