- PR -

構文がわかりません

投稿者投稿内容
get
常連さん
会議室デビュー日: 2003/10/02
投稿数: 21
投稿日時: 2005-10-07 14:25
久々に質問させていただきます。

javaを読んでいてよくわからない構文があったのでご教授願いたいと思います。

Boolean debug;
--省略
return debug == null ? false : debug.booleanValue();

あるmethodで上記のような戻り値をしているところがありました。
ここの戻り値で使用している文法が良くわかりません。
? : を使用するルールはどうなっているのでしょうか?

よろしくお願いいたします。
tama
会議室デビュー日: 2005/08/24
投稿数: 16
お住まい・勤務地: 焼売の国。ベイブリッジ見えません。
投稿日時: 2005-10-07 14:30
つgoogle 三項演算子
_________________
道草だらけ
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-10-07 14:31
引用:

getさんの書き込み (2005-10-07 14:25) より:

javaを読んでいてよくわからない構文があったのでご教授願いたいと思います。

あるmethodで上記のような戻り値をしているところがありました。
ここの戻り値で使用している文法が良くわかりません。
? : を使用するルールはどうなっているのでしょうか?


「三項演算子」で検索してみてください。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
takashi
ベテラン
会議室デビュー日: 2004/02/12
投稿数: 79
お住まい・勤務地: 東京
投稿日時: 2005-10-07 14:49
こんにちは。

全然関係ない&大きなお世話なんですが、

×javaを読んでいてよくわからない構文が
○javaの参考書を読んでいてよくわからない構文が

×あるmethodで上記のような戻り値をしているところがありました。
○あるmethodで上記のように戻り値を設定しているところがありました。

ごめんなさい、気になっちゃったんです・・・^−^;
get
常連さん
会議室デビュー日: 2003/10/02
投稿数: 21
投稿日時: 2005-10-07 15:25
皆さん早いレスありがとうございます。

おかげで理解することができました。

: ? を使用しているソースは見たことがなかったので
三項演算子というとは知りませんでした。
びしばし
大ベテラン
会議室デビュー日: 2002/03/13
投稿数: 181
投稿日時: 2005-10-07 17:18
解決されているところに蛇足というか余談で恐縮ですが、

コード:
Boolean debug;
--省略
return debug == null ? false : debug.booleanValue(); 



参考までに、どこでこのような「悪い見本」コードを見つけられたのか教えていただけますか ?
raystar
ぬし
会議室デビュー日: 2003/01/16
投稿数: 251
お住まい・勤務地: Tokyo/Japan
投稿日時: 2005-10-07 20:09
引用:

raystarさんの書き込み (2005-10-07 20:08) より:
引用:

コード:
Boolean debug;
--省略
return debug == null ? false : debug.booleanValue(); 





資格試験ででそうな構文ですね。
稼動中のシステムメンテでこのようなコードを見つけたら、
ぞっとします。

boolean flag = false;

if(debug != null) {
flag = debug.booleanValue();
}

return flag;

と書き直したほうが、見やすくてよいです。
メンテも楽ですよ!!

かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2005-10-07 20:49
オープンソースのプロダクトのソースを読むと、
三項演算が良く出てくるのですが、
業務系では流石に嫌われますね。

私の場合はコードが1行で済むので偶に使用しますが、
ネストするような演算になる場合は
絶対に使用しませんね。

#でもこんなに嫌われてるのか・・・

スキルアップ/キャリアアップ(JOB@IT)