什么是hr = hr> = 12? hr-12:hr;手段?

时间:2012-06-15 06:30:53

标签: javascript

我正在练习这个https://developer.mozilla.org/en/Canvas_tutorial/Basic_animations时钟教程。 代码中的所有内容对我来说都很清楚。 接受这个hr = hr>=12 ? hr-12 : hr;并不清楚我。可能是我写的是if else声明。

可以解释这段代码在做什么。

谢谢:)

8 个答案:

答案 0 :(得分:4)

它被称为三元操作

这意味着

if(hr>=12)
 hr=hr-12;
else
 hr=hr;

以下是足够

if(hr>=12)
     hr=hr-12;

答案 1 :(得分:4)

if (hr >= 12) {
   hr = hr - 12;
} 

如果hr不符合该条件,hr应该保持不变。

答案 2 :(得分:4)

这是三元运算符(?:) 以下是对此处所做的简单解释:

if(hr>=12)
{
    hr=hr-12;
}
//or else hr will have its same value

答案 3 :(得分:3)

这是一个三元运算符,形式为:

condition ? if_true | if_false 

如果为可读性添加更多括号,它可以变为:

hr = ( (hr >= 12) ? (hr - 12) : hr )

即,如果超过12,则减去12,然后存储回hr。

答案 4 :(得分:2)

hr= hr>=12 ? hr-12 : hr;if( hr >= 12 ) hr = hr-12 else hr = hr;

相同

bool ? expr_a : expr_b是一个运算符,当bool为真时,将计算expr_a,并将其值用作整个expr的值,否则expr_b将为。

答案 5 :(得分:2)

这意味着:

if(hr>=12)
{
  hr = hr - 12;
}

一般而言:

x= condition ? y : z

如果条件为真,则为x = y,否则为x = z

答案 6 :(得分:2)

它具有与此相同的效果:

hr %= 12;   //equivalent to -> hr = hr>=12 ? hr-12 : hr;

答案 7 :(得分:1)

它被称为ternary operator