一番かんたんなJava入門

これからJavaを始めようという人の為の超入門サイトです。丁寧、簡単にこだわった解説なので初心者にぴったりです

Home » 忘備録 » if文の省略形 三項演算子って何?

if文の省略形 三項演算子って何?

time 2016/09/28

sponsored link

三項演算子とは

 if文を省略した書き方ができる三項演算子というのがあります。

条件式 ? 値1 : 値2;

 このように、「?」と「:」を使って書くことで、まず条件式を評価して、trueならば値1を返し、falseならば値2を返します。
 条件式はもちろん、trueかfalseを返す式じゃないと駄目です。

 条件によって代入する値を変えたい場合などに、この書き方が非常に役に立ちます。

三項演算子の使い方

 簡単な例を出しますので、普通にif文を使った書き方と、三項演算子を使った書き方を比べてみて下さい。

if文

int num = 5;
String result = "";
if(num > 10){
    result = "numは10より大きいです";
}else{
    result = "numは10以下です";
}

 numが10より大きければ、変数resultに”numは10より大きいです”を代入し、numが10以下であれば”numは10以下です”を代入しています。

三項演算子

int num = 5;
String result = (num > 10)? "numは10より大きいです" : "numは10以下です";

 上のif文と全く同じことをしています。
 上記のように、三項演算子の場合も、条件式は( )でくくった方が見やすくていいです。無くても問題はありません。
 三項演算子に慣れていない人は、if文の方が読みやすく感じるかも知れませんが、慣れると三項演算子の方がスッキリしていて読みやすいと思います。というか三項演算子は書くのが楽ちんです。

 例のように、条件によって代入する値を変えるという処理は、結構よくあることだと思うので、覚えておくと楽できます。

三項演算子は値を返す

 三項演算子というのは、値を返すためのものです。

(num > 10)? "numは10より大きいです" : "numは10以下です"

 こう書くことで、”numは10より大きいです”という文字列か、”numは10以下です”という文字列のうちどちらかを返すわけです(どちらを返すかは条件式によります)。その返ってきた値を変数に代入するというのが主な使い方です。
「返す」とか「評価する」とかっていう感覚がよく分からない人は、演算子って何?をよく読んで下さい。プログラミングの基本中の基本部分です。

 なので、以下のような書き方はできません。

(num > 10)? System.out.println("numは10より大きいです") : System.out.println("numは10以下です");

 上記のようにその返ってきた値を宙ぶらりんにしていては、どこに代入するんだ?ってことでコンパイルが通りません。printlnメソッドは戻り値がない(void)ので、宙ぶらりんも何も値がないので代入のしようがないですが。

 単に条件によって、行う処理を分けたい場合は三項演算子は使えませんので、普通にif文を使いましょう。

 三項演算子はあくまで値を返す為のものです。

 ただし要は値を返しているだけなので、やろうと思えばメソッドの引数に入れることも出来ます。

System.out.println( (num > 10)? "numは10より大きいです" : "numは10以下です" );

 

 if文の条件式に入れることも出来ます(こんなことしても意味ないですが笑)。

if( (num > 10)? true:false ){
			
}

 

 ちょっと後半は話がややこしかったかも知れませんが、要は条件によって代入する値を変えたい時は三項演算子を使うと便利ですよ。というお話でした。

今だけ→転職できなければ全額返金の「エンジニア転職保証コース」
絶対エンジニアになる!→テックエキスパート

フリーランスエンジニアの収入例を見てみる→レバテックフリーランス

全くの初心者がWordPressでブログを始める方法

全くの初心者がWordPressでブログを始める方法

sponsored link

Androidアプリを作ろう

down

コメントする



一番かんたんなJava入門

Androidアプリの作り方

忘備録

私の作ったAndroidアプリ

おすすめプログラミングスクール

プログラミングスクール検索

受講スタイル

習得したいスキル

習得したい言語・フレームワーク

オプション

料金

 この本は全く何も分からない初心者の方にお勧めです。プログラミングをするには覚えなければならない事が無茶苦茶いっぱいありますが、この本は教えてくれる順番、その構成が素晴らしいです。RPGのゲームを作るというストーリーにのっとってちょっとずつ難しいことを教えてもらえます。
 無機質で膨大なデータが載っているような本は読む気にならないという方は、こういうストーリー仕立ての本でチャレンジしてみてはいかがでしょうか?(注:RPGを作る為の本ではありません。)

 ある程度、Javaを読み書きできるようになったら、オブジェクト指向について学ぶべきです。本書は、抽象的で分かったような分からんようなオブジェクト指向という考え方について、非常に分かりやすい例を出して説明してくれています。オブジェクト指向とは何なのか?という本質を掴むのにこれほど適した本はないと思います。
 オブジェクト志向の理念を理解できれば、より効率のいいコードをより楽に書けるようになるはずです。Java上級者を目指すなら必読の一冊![詳細]

管理人

Nobuo_CREATE

Nobuo_CREATE

WordPressテーマPrinciple、マテリアルを作ったり、Androidアプリを作ったり、Java入門サイトを作ったり、本を書いたりしています。大阪の北野田駅近くのマイスタイルという学習塾を経営しています。どうぞよろしく。 [詳細]



sponsored link

オススメ書籍

 この本は全く何も分からない初心者の方にお勧めです。プログラミングをするには覚えなければならない事が無茶苦茶いっぱいありますが、この本は教えてくれる順番、その構成が素晴らしいです。RPGのゲームを作るというストーリーにのっとってちょっとずつ難しいことを教えてもらえます。
 無機質で膨大なデータが載っているような本は読む気にならないという方は、こういうストーリー仕立ての本でチャレンジしてみてはいかがでしょうか?(注:RPGを作る為の本ではありません。)

 ある程度、Javaを読み書きできるようになったら、オブジェクト指向について学ぶべきです。本書は、抽象的で分かったような分からんようなオブジェクト指向という考え方について、非常に分かりやすい例を出して説明してくれています。オブジェクト指向とは何なのか?という本質を掴むのにこれほど適した本はないと思います。
 オブジェクト志向の理念を理解できれば、より効率のいいコードをより楽に書けるようになるはずです。Java上級者を目指すなら必読の一冊![詳細]

只今、急拡大中

JavaからのRuby on Rails入門

JavaからのRuby on Rails入門