1

私はこのhttps://developer.mozilla.org/en/Canvas_tutorial/Basic_animationsClo ​​ckチュートリアルを練習しています。コード内のすべてが私には明らかです。これを受け入れるhr = hr>=12 ? hr-12 : hr;のは私にはわかりません。if elseそれは声明かもしれません。

このコードが何をしているのか説明できますか?

ありがとう :)

4

8 に答える 8

4

これは三項演算子(?:) です。ここで行われていることの簡単な説明は次のとおりです。

if(hr>=12)
{
    hr=hr-12;
}
//or else hr will have its same value
于 2012-06-15T06:34:32.357 に答える
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 に答える
3

これは、次の形式の三項演算子です。

condition ? if_true | if_false 

読みやすくするために角かっこを追加すると、次のようになります。

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

つまり、12を超える場合は、12を減算し、hrに戻します。

于 2012-06-15T06:33:41.593 に答える
2

hr= hr>=12 ? hr-12 : hr;と同じですif( hr >= 12 ) hr = hr-12 else hr = hr;

thebool ? expr_a : expr_bは、booltrueの場合、expr_aが評価され、その値がexprの値全体として使用される演算子です。それ以外の場合、expr_bはになります。

于 2012-06-15T06:35:52.673 に答える
2

その意味は:

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

一般的:

x= condition ? y : z

条件が真の場合x = y、それ以外の場合x = z

于 2012-06-15T06:37:10.390 に答える
2

これと同じ効果があります:

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

三項演算子と呼ばれます。

于 2012-06-15T06:36:30.157 に答える