我正在练习这个https://developer.mozilla.org/en/Canvas_tutorial/Basic_animations时钟教程。
代码中的所有内容对我来说都很清楚。
接受这个hr = hr>=12 ? hr-12 : hr;
并不清楚我。可能是我写的是if else
声明。
可以解释这段代码在做什么。
谢谢:)
答案 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。