【Javaプログラミング超入門 #10】条件分岐(1)

 

みのる
こんにちは。笑顔で感謝!✨ みのるコーチです。
今回も、ご覧いただき、ありがとうございます。

今回は

Java超入門 #10
条件分岐(1)

というテーマでお送りします。

彩香
何だか、新たな領域に入っていくようで楽しみです。
今回も、よろしくお願いします。
剛留
段々とJavaプログラミングが分かってきました。
今回も、頑張って勉強します!
みのる
それでは 早速 行ってみましょう。

【Youtube版】

Youtubeでもお伝えしていますので
是非チェックしてくださいね。

【1】条件分岐とは

①条件により処理が分岐

今まで見てきたプログラムは、ステートメントを
上から下へと 順に実行していくものでした。

そして今回の条件分岐は
プログラム上のある条件によって処理が分岐することで

分岐した いずれかの処理(通常はブロック)が実行される。
…という事なのです。

条件分岐
✅ プログラム上のある条件によって
  処理が分岐すること。

✅ 分岐した いずれかの処理
  (通常はブロック)が実行される。

②基本構造の1つ

第4回の「プログラム全体像」でお話した

基本構造

を覚えていますか。

プログラムの処理の流れは
基本的な3つの構造で表すことができます。

と お伝えした内容です。

基本構造については、こちらの記事でお伝えしています。
こちらも参考にして頂けたらと思います。

【Javaプログラミング超入門 #04】プログラム全体像

ここでも、簡単に復習しておきましょうね。

プログラムの処理の流れは
基本的な3つの構造で表すことができます。

この3つです。

基本構造
❶ 順次
❷ 条件分岐(選択)
❸ 繰り返し(反復)

1つが順次。
これは上から下へ順番に処理していく構造です。

2つ目が条件分岐。
プログラム上のある条件によって処理が分岐する構造です。

3つ目が繰り返し。
こちらは条件を見て処理を繰り返す構造です。

これまでは、上から下へ処理を行う
プログラムを見てきましたが…

これらは、全て①順次の構造だったのですね。

そして今回は、②条件分岐の構造の中の
基本的な if 文 というものを見ていきます。

【2】フローチャート

① 処理の流れを表す

フローチャート
処理の流れを表す図。

図式化すると視覚化されるため
処理を整理して考える時に役立つ。

プログラムの処理を考える時に
部分的に フローチャートを書いてみましょう。

視覚化すると スッキリとした処理が
書きやすくなります。

必要に応じて 活用してみましょうね。

②条件分岐の表し方

今回は、必要な記号を 2つ 見ておきましょう。

➊ 処理

処理を表す記号は長方形です。
Javaプログラムでは、ステートメントやブロックに相当します。

❷ 条件分岐

条件分岐を表す記号は、ひし形です。
ある条件の時に、処理が分かれる事を表します。

Javaプログラムでは、if 文に相当します。

③条件分岐の基本形

条件分岐の基本形として
この形をイメージしましょう。

前の処理からは、順次で進んできます。

そして、ひし形の記述です。
このひし形の中には条件式を書きます。

条件は、例えば金額が いくら以上とか…
年齢が何歳以上 とかの条件です。

そして、下側と右側に分岐します。

下側が true の時の処理です。
右側が false の時の処理です。

そして大切なことは

この分岐のそれぞれの処理が終わった後に
元の1本に 合流するという事です。

1本に合流する事で、次の処理を 順次で進めていく事ができる
という事になります。

1本の線で入ってきて
1本の線で抜けていく という書き方です。

基本構造(順次・条件分岐・繰り返し)の組み合わせで
プログラムを構成する事を

構造化プログラミング と言う事を お話しました。

その1つの基本的な書き方になります。

この図を イメージするようにしましょうね。

例えば、こんな感じです。

年齢が20歳以上 が、true だったら「大人」と表示して
false だったら「子供」と表示する。

そして、元の線に合流して次の処理につながっていく(順次)。

彩香
確かに、処理の流れが目に見えるのでとても解りやすいですね。
こうやって図にするだけで、スッキリしますね。
剛留
まずは、長方形で処理を書くこと。ひし形で条件分岐ですね。
基本をゲットしました。

【3】if 文

① if文の書き方

フローチャートで視覚的に処理の流れを
押さえたら、Javaでプログラミングしましょう。

if 文の書き方は、こうなります。

キーワード if の後に () 丸括弧。
その中に条件式を記述します。

条件式については、次のコーナーで
お話していきますね。

そして、次にブロックを書きます。
このブロックは、条件式が true の時に
実行されるブロックです。

ブロックの後には、キーワード else を
記述して、更にブロックを記述します。

こちらの2つ目のブロックは
条件式が false の時に実行されるブロックになります。

【補足】
➊ ブロックは2つあるが
  必ず、どちらかが実行される。

❷ ブロックの中にステートメントが
 1つの場合 {} は省略できる。
 (ただし、読みにくくなる事と
  間違いの元になるので 必ず {}を
  つけよう。)

②フローチャートとの対応

フローチャートと if 文の対応を
見ておきましょう。

左側がフローチャートで
右側が Java の if文の書き方です。

条件式を書いた条件分岐の記号が
if (条件式) に相当します。

そして、trueの時の処理は if(条件)の後の
ブロックに相当します。

falseの時の処理は else の後のブロックに
相当します。

if文を書く時には、このフローチャートの
イメージを持っておくと良いですね。

どちらかのブロックを実行する事と…

if-elseブロック全体が終わったら1つに合流して
次は 順次処理 をしていく。

この イメージを持てると、スッキリと処理を
考える事ができると思います。

彩香
フローチャート と Javaプログラミングのイメージが
結びつきました。このイメージを持って進めます。
剛留
if の後のブロックと、else のブロックのどちらかが
実行されること、分かりました。
フローチャートで考えると 解りやすいですね。

【4】条件式

条件式
演算子を使って評価する式のうち
最終的な評価結果が boolean型
(true/false)になるもの。

条件式で使われる演算子は
主に、関係演算子と論理演算子がです。

式・評価の概念・関係演算子・論理演算子については
以下の記事でも解説しています。

ぜひ参考にして頂けたらと思います。

【Javaプログラミング超入門 #07】演算子

ここでも簡単に復習しておきましょう。

関係演算子については、この6つです。



<=
>=
==
!=

演算子の左辺と右辺の関係を見て
true または false で評価します。

そして、この例のような式を
if文の条件式として記述することができます。

たとえば、a と b が int型変数の場合

if (a < b) { … と記述すれば
a が b より小さいときに true (つまり if のブロックを実行)

そうでないときに false(else のブロックを実行)となります。

同様に、a > b と書けば、a が大きい時に true
a <= b と書けば、a が小さいか等しい時に true
a >= b と書けば、a が大きいか等しい時に true
a == b と書けば、a と b が等しい時に true
a != b と書けば、a と b が等しくない時にtrue
となります。

そして、論理演算子は 3つです。

&&
||

その名の通り「論理演算」の演算子です。

この例では、ageは年齢を表す int型変数
isMan は 男性だったら true の値を持つ boolean型の変数とします。

&&は左辺と右辺が共に true だった時に true になるので…
(age >= 20) && isMan と書いた場合には
20歳以上で かつ 男性の場合に、条件式は true になります。

|| は左辺と右辺の
少なくとも一方が true だった場合に true なので
(age >= 20) || isMan の場合には
20歳以上 または 男性の場合に、条件式は true になります。

! は単項演算子で、真偽を逆転します。

この例の場合では、(age >= 20) が true だったら false
false だったら true となります。

彩香
if 文を使うと、変数の値によって動きが変わるように
プログラムが書けるので、処理の幅が広がりますね。
剛留
特に、入力した値によって、条件分岐をする事は
色々な場面で使えそうですね。
if 文は、パワフルですね~。

【まとめ】

【1】条件分岐とは
・ プログラム上のある条件によって
  処理が分岐すること。

・ 分岐した いずれかの処理
 (通常はブロック)が実行される。

・ 基本構造の1つ
   ❶ 順次
   ❷ 条件分岐
   ❸ 繰り返し

【2】フローチャート
・ 処理の流れを表す。

・ 条件分岐は ひし形で表す。

・ 条件分岐の基本形
  ➊ 条件式を指定
  ❷ true の場合 下のブロック
  ❸ false の場合 右のブロック
  ❹ 処理が終わったら合流する

【3】if 文
・ 基本的な書き方
  if (条件式) {
   条件式true時のブロック
  } else {
   条件式false時のブロック
  }

・ いずれかのブロックが実行される。

【4】条件式
・ 式のうち最終的な評価結果が
  boolean型(true/false)になるもの。

・ 主に、関係演算子と論理演算子を使う。