可能重复:
C# ?:条件运算符
有人可以解释一下“:”在这种情况下的作用吗?
var skupaj = dni + zacetniDan + (((dni + zacetniDan) % 7 != 0) ? 7 - ((dni + zacetniDan) % 7) : 0);
可能重复:
C# ?:条件运算符
有人可以解释一下“:”在这种情况下的作用吗?
var skupaj = dni + zacetniDan + (((dni + zacetniDan) % 7 != 0) ? 7 - ((dni + zacetniDan) % 7) : 0);
:
是三元运算符的一部分。它是if
/else
子句的简码。
例子:
int a = b > 5 ? 2 : 3;
是相同的:
int a = 0;
if (b > 5)
{
a = 2;
}
else
{
a = 3;
}
? :
是if / then / else 的条件运算符缩写形式
第一部分是条件应该在?
表达式之前被评估为布尔值after ? is then part
,并且当条件为真时expression after : is else part
返回,并且当条件被评估为假时返回
它是一个三元运算符。
它是以下等效代码的简写:
int skupaj = dni + zacetniDan;
if ((dni + zacetniDan) % 7 != 0) {
skupaj += 7 - ((dni + zacetniDan) % 7);
}
else {
skupaj += 0;
}
(((dni + zacetniDan) % 7 != 0) ? 7 - ((dni + zacetniDan) % 7) : 0);
这是一个三元表达式Condition?Expr1:Expr2
表达式的结果是Expr1
ifCondition
为 true 和 else 的结果Expr2
。
在您的特定情况下,条件是
((dni + zacetniDan) % 7 != 0)
如果此条件为真,则三元子表达式的结果将是
7 - ((dni + zacetniDan) % 7)
否则为 0。
三元运算符。它允许您将条件值视为单个值。
这是一个将布尔值转换为字符串的基本示例
string str = myBool ? "true" : "false";
这相当于
string str
if(myBool)
str = "true";
else
str = "false";
这就是三元运算符:http: //msdn.microsoft.com/en-us/library/ty67wk28 (v=vs.80).aspx
if (dni + zacetniDan) % 7 != 0)
is true
then 评估为7 - ((dni + zacetniDan) % 7)
else 评估为0
您可以通过拆分为 3?
轻松理解一条线。:
?
是条件?
和之间的术语:
:
如果条件为假,则应使用后面的术语