Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。
Q&A
解決済
3回答
966閲覧
総合スコア13
0グッド
0クリップ
投稿2016/02/13 05:09
0
public void setPoint(Double point) { this.point = point; }
とセッターがある時
setPoint(algorithm != null ? algorithm.getPoint() : 0D);
と記述されているのですが、「?」と「:」がどのような役割を果たしているのか理解できません。
ご教授お願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
回答3件
ベストアンサー
それは「三項演算子」と呼ばれるもので、double 型に限らず使えます。
Java1algorithm != null ? algorithm.getPoint() : 0D
Java
1algorithm != null ? algorithm.getPoint() : 0D
という記述では、「algorithm != null」が真ならば、「algorithm.getPoint()」が、偽ならば 0D が演算結果になります。
三項演算子は if 文を使わず条件による値の切り替えができるので便利ですが、慣れない人にはわかりづらいのでバッドプラクティスだと考える人もいます。
投稿2016/02/13 05:13
総合スコア1193
回答へのコメント
2016/02/13 05:29
これは三項演算子です。 条件式 ? 式1 : 式2 の形で 条件式が true なら 式1 、false なら式2 を実行します。 今回ならば algorithm != null なら algorithm.getPoint() を、そうでなければ 0D を設定します。 三項演算子は特にDouble型特有ものではありません。
総合スコア674
2016/02/13 05:30
java1{true or false} ? {trueの場合の処理} : {falseの場合の処理};
java
1{true or false} ? {trueの場合の処理} : {falseの場合の処理};
投稿2016/02/13 05:14
総合スコア419
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.29%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
JAVAのDouble型の引数で「?」と「:」の意味
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/02/13 05:29