1

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

任何人都可以解释这段代码在做什么吗?

谢谢 :)

4

8 回答 8

4

它称为三元运算

它的意思是

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

以下就足够了

if(hr>=12)
     hr=hr-12;
于 2012-06-15T06:32:52.357 回答
4
if (hr >= 12) {
   hr = hr - 12;
} 

如果hr不符合该标准,hr则应有效地保持不变。

于 2012-06-15T06:32:52.700 回答
4

这是三元运算符(?:) 这里是对这里所做的事情的简单解释:

if(hr>=12)
{
    hr=hr-12;
}
//or else hr will have its same value
于 2012-06-15T06:34:32.357 回答
3

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

condition ? if_true | if_false 

如果您添加更多括号以提高可读性,它可以变成:

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

也就是说,如果大于 12,则减去 12,然后存储回 hr。

于 2012-06-15T06:33:41.593 回答
2

它的意思是:

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

一般来说:

x= condition ? y : z

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

于 2012-06-15T06:37:10.390 回答
2

hr= hr>=12 ? hr-12 : hr;是一样的if( hr >= 12 ) hr = hr-12 else hr = hr;

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

于 2012-06-15T06:35:52.673 回答
2

它的效果与此相同:

hr %= 12;   //equivalent to -> hr = hr>=12 ? hr-12 : hr;
于 2012-06-15T07:00:52.543 回答
1

它被称为三元运算符

于 2012-06-15T06:36:30.157 回答