这个小时 = 小时>=12 是多少?HR-12 : HR;方法?



我正在练习这个 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;

它被称为三元运算符。

最新更新