我正在练习这个https://developer.mozilla.org/en/Canvas_tutorial/Basic_animations时钟教程。代码中的所有内容对我来说都很清楚。接受这个hr = hr>=12 ? hr-12 : hr;我不清楚。可能是一个if else声明。
任何人都可以解释这段代码在做什么吗?
谢谢 :)
我正在练习这个https://developer.mozilla.org/en/Canvas_tutorial/Basic_animations时钟教程。代码中的所有内容对我来说都很清楚。接受这个hr = hr>=12 ? hr-12 : hr;我不清楚。可能是一个if else声明。
任何人都可以解释这段代码在做什么吗?
谢谢 :)
它称为三元运算
它的意思是
if(hr>=12)
 hr=hr-12;
else
 hr=hr;
以下就足够了
if(hr>=12)
     hr=hr-12;
    if (hr >= 12) {
   hr = hr - 12;
} 
如果hr不符合该标准,hr则应有效地保持不变。
这是三元运算符(?:)
这里是对这里所做的事情的简单解释:
if(hr>=12)
{
    hr=hr-12;
}
//or else hr will have its same value
    它是一个三元运算符,形式为:
condition ? if_true | if_false 
如果您添加更多括号以提高可读性,它可以变成:
hr = ( (hr >= 12) ? (hr - 12) : hr )
也就是说,如果大于 12,则减去 12,然后存储回 hr。
它的意思是:
if(hr>=12)
{
  hr = hr - 12;
}
一般来说:
x= condition ? y : z
如果条件为真,则x = y,否则x = z
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 将是。
它的效果与此相同:
hr %= 12;   //equivalent to -> hr = hr>=12 ? hr-12 : hr;
    它被称为三元运算符。