• ベストアンサー

Java言語規定にあるプログラム例についての疑問

Java言語規定にもあるプログラムの書式なのですが一つ解らないところがあるので質問させてください。 http://www.y-adagio.com/public/standards/tr_javalang/1.doc.htm#11484 のソース内に System.out.print(i == 0 ? args[i] : " " + args[i]); というのがありますが >i == 0 ? args[i] : この使用法が全くわかりません。 プログラミングはN88-BASICからほとんどの言語(COBOLを除く)を使用してきましたし、Java自体プログラムを組んだ事があるのですが、はじめてみる構文です。 この構文を説明しているサイトもしくは使用方法、どのような時に使用するのが良いか(出来れば例が欲しいです。)をご存知の方。回答よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ranx
  • ベストアンサー率24% (357/1463)
回答No.2

三項演算子ですね。 条件式 ? 式1 : 式2 という式で、条件式がtrueならば式1が、falseならば式2が 評価されるというものです。元々C言語に特有の記述方法で、他の古い プログラム言語には見られなかったものですが、Cの系統を引くC++ やJavaには取り入れられています。

noname#6248
質問者

お礼

三項演算子ですね、おかげですっきりしました。 普段BASICやFORTRAN等の知識から迷わずに if(){}else{}を使用していました… そういえばFORTRANでこれに似た書式があったような… IF(条件式)正の時の処理,0の時の処理,負の時の処理 …違う気がする… 今まで参考書を見ても載っていなかったんですよね… (読み飛ばしてしまっただけのような気もしていますが…) マイナーな使用方法なのかな… 回答ありがとうございました。

その他の回答 (1)

  • pasta500g
  • ベストアンサー率46% (30/65)
回答No.1

i==0がtrueならargs[i]、falseなら" " + args[i]という意味です。 同じ文法はCにもあります。 コマンドラインを組み立てる(引数を繋げて行く)にあたり、 2つ目以後(i==0でない場合)は空白を挟みたい、という主旨だと 思います。

noname#6248
質問者

お礼

早速の回答ありがとうございます。 区切り方を間違えていたようですね… 納得しました… ありがとうございます。

関連するQ&A