重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

javascriptの公開されているライブラリを利用して、
画像のスライド等に挑戦しました。

ソースコードを見てみようとしたのですが、
一部分ですが、

if(this.r){n=d==1?n==this.l?0:n:n<0?this.l-1:n}

上記のようなコードが見つかりました。

ソースの中に記述されている ? とはなんでしょうか。

googleで調べようとしましたが「?」をうまく調べることができませんでした。

よろしければご教授願います。

A 回答 (2件)

A=(X)?B:C



上の式は、次の式と意味合いとしては同じです。

if(X){
 A=B;
}else{
 A=C;
}

Xが真ならBをAに代入。
Xが偽ならCをAに代入。


場合によっては、ifより高速に処理できることもあるそうです。
個人的には、ifより記述がシンプルなので、よく使います。
    • good
    • 0
この回答へのお礼

情報ありがとうございます。

わかりやすく説明して頂きありがとうございました。
理解することができました。

お礼日時:2012/04/09 03:37

これは条件演算子と呼ばれているものです。


?と:とを合わせてそう呼ばれます。

?の前の条件式がtrueならば?と:の間の値を、falseならば:以降の値をとります。
具体的に言うと、
x = n==1 ? 1 : 2;
という式で、nの値が1ならばxは1に、それ以外の場合はxは2になります。

ご質問の式はこれが二重に使用されています。分かりやすく外側の条件演算子の各項を括弧でくくると
n = (d==1)?(n==this.l?0:n):(n<0?this.l-1:n)
となります。

これ以外のコードが分からないのでこのコードが何を意味するのかはよく分かりませんが、なにやらnの値が範囲外に出ないように調整しているように思えます(dが何を表す値か分かれば……)。
    • good
    • 0
この回答へのお礼

情報ありがとうございます。

わかりやすく説明して頂きありがとうございました。
理解することができました。

お礼日時:2012/04/09 03:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!