当我试图理解C#代码块时,我问自己这段代码意味着什么:
y -= y > 9 ? 9:0;
提前致谢
答案 0 :(得分:11)
是的,这段代码有点令人困惑。
基本上逻辑如下:
if y is greater than 9
subtract y by 9
otherwise
subtract y by 0
这也等同于以下代码:
if (y > 9) {
y = y - 9;
}
else {
y = y - 0;
}
在这种情况下,其他情况当然是多余的,但我做了直译。
如需进一步阅读,您可以查看here。祝你好运!
答案 1 :(得分:2)
如果y > 9
然后从y
减去9,则减去零(不执行任何操作)。
答案 2 :(得分:2)
首次评估:
(y > 9)
如果这是真的,表达式将被计算为9。
如果为false,则评估为0.
然后从y的当前值中减去该评估结果。
答案 3 :(得分:1)
正如我想的那样:
if(y>9)
y=y-9;
else
y=y-0;
答案 4 :(得分:0)
这使用了C#中的? operator。条件运算符(?:)根据布尔表达式的值返回两个值中的一个,并计算为:
if(y>9)
y-= 9;
else
y-= 0;
答案 5 :(得分:0)
- = 是一个减法运算符
y -= (expression)
表示从y
中减去(表达式)并将该值存储在y
<强>? :是三元运营商。这是一种编写具有条件值的表达式的方法
(expression) ? x : y
表示如果x
为真,则评估为(expression)
,如果y
为假,评估结果为(expression)
答案 6 :(得分:0)
y -= something;
装置
y = y - something;
“?”是一个三元运算符。它的语法是:
condition ? true_expression : false_expression
所以,该行的等价物是:
if (y > 9)
y = y - 9;
else
y = y - 0; // Of course, this wouldn't make sense written like this.
该行的简洁版本可以是:
if (y > 9)
y -= 9;