我正在练习这个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;
它被称为三元运算符。