我正在练习这个 https://developer.mozilla.org/en/Canvas_tutorial/Basic_animations 时钟教程。代码中的所有内容对我来说都很清楚。接受这个hr = hr>=12 ? hr-12 : hr;
我不清楚。也许这是一个if else
的说法。
任何人都可以解释一下这段代码在做什么吗?
谢谢:)
三元运算符(?:)
以下是对此处所做工作的简单解释:
if(hr>=12)
{
hr=hr-12;
}
//or else hr will have its same value
if (hr >= 12) {
hr = hr - 12;
}
如果hr
不符合该标准hr
实际上应该保持不变。
它被称为三元运算
这意味着
if(hr>=12)
hr=hr-12;
else
hr=hr;
以下就足够了
if(hr>=12)
hr=hr-12;
它是一个三元运算符,形式为:
condition ? if_true | if_false
如果为便于阅读而添加更多括号,则可能变为:
hr = ( (hr >= 12) ? (hr - 12) : hr )
也就是说,如果超过 12,则减去 12,然后存储回小时。
hr= hr>=12 ? hr-12 : hr;
与if( hr >= 12 ) hr = hr-12 else hr = hr;
相同
bool ? expr_a : expr_b
是一个运算符,当bool
为 true 时,expr_a被计算,其值将用作整个 expr 的值,否则expr_b将是。
这意味着:
if(hr>=12)
{
hr = hr - 12;
}
一般:
x= condition ? y : z
如果条件为真,则x = y
,否则x = z
它具有与此相同的效果:
hr %= 12; //equivalent to -> hr = hr>=12 ? hr-12 : hr;
它被称为三元运算符。