こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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自体プログラムを組んだ事があるのですが、はじめてみる構文です。
この構文を説明しているサイトもしくは使用方法、どのような時に使用するのが良いか(出来れば例が欲しいです。)をご存知の方。回答よろしくお願いします。

投稿日時 - 2002-03-18 10:22:21

QNo.237121

暇なときに回答ください

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

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

投稿日時 - 2002-03-18 13:21:23

お礼

三項演算子ですね、おかげですっきりしました。
普段BASICやFORTRAN等の知識から迷わずに
if(){}else{}を使用していました…

そういえばFORTRANでこれに似た書式があったような…
IF(条件式)正の時の処理,0の時の処理,負の時の処理
…違う気がする…

今まで参考書を見ても載っていなかったんですよね…
(読み飛ばしてしまっただけのような気もしていますが…)
マイナーな使用方法なのかな…

回答ありがとうございました。

投稿日時 - 2002-03-18 17:13:58

ANo.2

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

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

投稿日時 - 2002-03-18 10:58:07

お礼

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

投稿日時 - 2002-03-18 17:03:54

あなたにオススメの質問