社員ブログ

【Java入門】if文 Java入門第6回(解説編)

【Java入門】if文 Java入門第6回(解説編)

こんにちは、株式会社プロシードの「こた」です!

本日はJavaのif文を学んでいきます!

この記事の内容
・条件分岐とは?

・if文の基本的な書き方(ブロック、条件式など)

・elseやelse ifを使ったif文

・文字列の比較

 
いわゆる「条件分岐」と呼ばれる分野ですね!

難しい単語が出てきていますが、要は「ユーザ名とパスワードが一致していればログインでき、一致しなければログイン失敗」みたいなものです!

条件を満たしているか、満たしていないかで処理が変わる、ということですね^ ^

実際の開発現場でも、とても良く使います!

皆さんに「理解できました!」といってもらえるように頑張ります!

よろしくお願いします^ ^

前回出題したJavaの問題

前回の記事で、if文に関する問題を出題しました!

以降でこの問題を解説していきますが、もちろん問題を解いていなくても大丈夫ですので、ご心配なく^ ^

では、はじめましょう!

【事前説明1】条件分岐とif文の基礎

今回は事前に色々と説明してから、問題を解説したいと思います^ ^

まずは条件分岐です!

難しそうな用語ですが、そんなことはないです^ ^

条件分岐の例
※ファストフード店での1シーン

「お持ち帰りですか?」

・「はい」なら注文して受け取ったら帰る

・「いいえ」なら受け取ったらお店で食べる

 
上記はファストフード店の例ですが、牛丼屋さんでも良いです!

お店に入って券売機を見ると、「店内」と「お持ち帰り」っていうボタンが出てるの、見たことないですかね?

これは「どっちのボタンを押したのか」によって処理を変えようとしているからですね!

こういうのが条件分岐です^ ^

図にするとこんな感じになります!

プログラムにするとこんな感じです!

実行結果

ざっくり解説
・ifという命令を使えば、条件分岐ができる

・ifの後ろのカッコには条件を書く

・条件を満たしていたら、ifの方の{ }で囲まれたとこが実行される

・条件を満たさなかったら、elseの方の{ }で囲まれたとこが実行される

 
このようなifを使ったプログラムをif文といいます!

ifは英語で「もし~なら」、elseは「他の、他に」という意味!

そう考えると、英語の文章みたいですね^ ^
 
 

【事前説明2】ブロックの中で宣言した変数について

続いてはブロックについてです!

波カッコ{ }で囲まれたエリアですね^ ^

いまはSystem.out.printlnしか書いてないですが、このブロックの中には変数を書くこともできます!

ただし注意点があって、ブロックの中で宣言した変数は、そのブロックの中でしか使用できません!

上の例ではString型の変数sはifブロックの中でしか使えません!

「波カッコ{ }がどこからどこまでなのか」をしっかりと意識するようにしましょう^ ^
 
 

【事前説明3】条件式の書き方

条件式とは、「もし~ならこの処理を、そうじゃないならこっちの処理を実行」の~に該当する部分です!

条件式はif文のカッコ( )の中に書きます!

あとはカッコ( )の中に何を書くか?ですが、以前に比較演算子の解説をしたと思います、こちらですね!

ここでは「等しい/等しくない」や「大小関係」を学びました!

書き方はこんな感じでしたね^ ^

比較演算子の復習
・x == y  xとyが等しいかどうか?
・x != y  xとyが異なっているかどうか?
・x > y  xがyより大きいかどうか?
・x >= y  xがy以上かどうか?
・x < y  xがyより小さいかどうか?
・x <= y  xがy以下かどうか?

 
これらをif文のカッコ( )の中に書けばOKです!

正確には「最終的にtrueかfalseになるもの」であればOKです!

上の例だと「1+2」は結果がtrueにもfalseにもならないのでNGです。

「もし3なら」みたいに捉えられないこともないですが、「3に等しい場合は」を表現する時は、きちんと==を使いましょう^ ^

事前説明は以上です!

それでは問題の解説に移りましょう^ ^
 
 

問題1:if文の中身が実行される条件

問題1はこちら

正解はこちら
(A)

 
実行結果

こちらは事前説明1で解説したことがポイントです!

事前説明1では、以下のようにif文をざっくり解説していましたね^ ^

ざっくり解説(再掲)
・ifという命令を使えば、条件分岐ができる

・ifの後ろのカッコには条件を書く

・条件を満たしていたら、ifの方の{ }で囲まれたとこが実行される

・条件を満たさなかったら、elseの方の{ }で囲まれたとこが実行される

 
注目してほしいのは箇条書き3つ目です!

要は、条件を満たしてたらifブロックの中身が実行されるのですが、言い換えると、if文の条件式がtrueならifブロックの中身が実行されるということになります!

今回の問題1では、if文の条件式に最初からtrueが入っているので、if文の中の処理が実行されます!
 
 

問題2:if文の中身が実行される条件

問題2はこちら

正解はこちら
(C)

 
実行結果

この問題も、先ほどのざっくり解説がポイントです!

ざっくり解説(再掲)
・ifという命令を使えば、条件分岐ができる

・ifの後ろのカッコには条件を書く

・条件を満たしていたら、ifの方の{ }で囲まれたとこが実行される

・条件を満たさなかったら、elseの方の{ }で囲まれたとこが実行される

 
注目してほしいのは箇条書き4つ目です!

要するに、条件を満たさなかったらelseブロックの中身が実行されるわけなのですが、

今回はelseブロックがありません!

この場合は、ifブロックがただ実行されないだけです!

「条件式がfalseの時は、ifブロックは実行されない」ということをしっかり覚えておきましょう^ ^
 
 

問題3:elseを使ったif文

問題3はこちら

正解はこちら

こちらは問題2までの説明で解けます!

改めて復習です!

if文の復習
・条件式(カッコの中)がtrue ⇒ ifブロックが実行される

・条件式(カッコの中)がfalse ⇒ ifブロックは実行されない

 
こうでしたね^ ^

で、問題3を見てみると、11行目のx + yの答えは9になるので、変数zには9が入ってるはずです!

そこから12行目のif文のカッコの中が実行されるわけなのですが、

変数zに9が入っているなら「z == 9」はtrueですね^ ^

というわけで、この問題ではifブロックの処理が実行されます!
 
 

問題4:else ifを使ったif文

問題4はこちら

正解はこちら

注目すべきは12行目です!

else ifというものが出てきましたね^ ^

今までのif文は「もし○○なら処理Aを、そうじゃないなら処理Bを実行」という形でした!

しかし、else ifを使うと「もし○○なら処理Aを、そうじゃなくても△△なら処理Bを、どれでもないなら処理Cを実行」というプログラムが書けます!

問題4がまさにそうで、10行目の「aは5より大きいか?」はダメだったが、11行目の「aは3より大きいか?」はクリアしていますね^ ^

なのでこの問題ではelse ifブロックが実行されます!

最後にelse ifに関して1点補足しておきます^ ^

板書のように、複数の条件に合致した場合は、最初に合致した条件だけ実行されます!

「合致したやつぜんぶ実行!」とかないので、気をつけてくださいね^ ^
 
 

問題5:文字列の比較

問題5はこちら

正解はこちら

実行結果

「パスワードが”abcd”と一致しているか」をプログラムで書く問題なのですが、

実はこれ、経験者でも油断してると間違えたりしてしまう問題です(笑)

詳しく見ていきましょう!

現時点では「文字列の比較はequalsを使う」と覚えておいてください!

「==」で文字列比較をすると、エラーにならないけど時々変な動きになって、とてもややこしくなったりします^ ^;

注意しましょう!
 
 

問題6:条件式が複雑なif文

問題6はこちら

正解はこちら

実行結果

以前に論理演算子の解説をしたのを覚えていますでしょうか??

ポイントはこうでしたね^ ^

論理演算子の復習
・条件A && 条件B ⇒ 「条件Aがtrueかつ条件Bもtrue」ならtrue

・条件A || 条件B ⇒ 「条件Aがtrueまたは条件Bがtrue」ならtrue

・!条件A ⇒ 「条件Aを満たさない」ときにtrue(条件Aじゃない)

 
こちらをif文に応用すれば、問題6のように複雑な条件も書くことができます!

問題6の条件を解説すると、、、

こんな感じです^ ^

「かつ」や「または」を使いこなして、いろいろな条件式を書けるようになりましょう!
 
 

おわりに

お疲れさまでした!

今回は盛りだくさんでしたね、お疲れさまでした^ ^

「わかりやすかった!」「わかりにくかった、、」など、コメントいただければ嬉しいです!

それでは、また次の記事でお会いしましょう!

最後まで読んでくださり、ありがとうございました!

以上、こたでした!

Leave A Reply

*

コメントは日本語で入力してください。(スパム対策)

*
* (公開されません)

CAPTCHA