プログラミング学習をするときに必要となる知識はの一つが、条件(じょうけん)です。
条件は、プログラムの処理を細かく設定するためには欠かせない処理になるので、しっかり理解できるようにしましょう。
条件ってなに?
条件は、「条件分岐(じょうけんぶんき)」とよばれることもあるよ。
使い方は「もし〇〇なら△△せよ」となるんだ。
〇〇の部分に条件を書いて、△△の部分には〇〇に合致した結果を書くよ。
普段の生活でも
「もしテストで70点以上取ったら、合格だよ」
「もし風邪をひいたら、学校は行けないよ」
って会話するよね。
プログラミングで書くと、
if ( 条件A ) { 条件Aに合致したときの処理 }
となるよ。
さきほどの会話をそれぞれをプログラミングで書いてみよう♪
「もしテストで70点以上取ったら、合格だよ」を条件文にする
if ( テストで70点以上取ったら ) { テスト合格 }
もう少しプログラミングっぽくしてみると
if ( テストの点数 ≫=70 ) { テスト合格 }
となるよ。
「70点以上」というのは、「≫=70」で書くよ。ifというのは「もしも」という意味だよ。
「≫=」は比較演算子(ひかくえんざんし)で、「〇〇以上」という意味になるんだ。詳しくは下で説明するからね。
「もし風邪をひいたら、学校は行けないよ」を条件文にする
if ( 風邪をひいたら ) { 学校は休み }
これも、もう少しプログラミングっぽくしてみると
if ( 体調==風邪 ) { 学校は休み }
となるよ。
「風邪をひく」というのは、「体調が悪い」ってことだから「体調が風邪」となるから「体調==風邪」と書くよ。
「==」は比較演算子(ひかくえんざんし)で、「〇〇と等しい」という意味になるんだ。
比較演算子(ひかくえんざんし)ってなに?
比較演算子を変えることで、いろいろな条件を作ることができるんだよ。
まずは、比較演算子の種類から説明するよ。
種類 | 説明 | 使い方 | 意味 |
---|---|---|---|
== | 等しい(同じ) | if( A == B ) | AとBが等しいならば |
!= | 等しくない | if( A != B ) | AとBが等しくなければ |
<> | 等しくない | if( A <> B ) | AとBが等しくなければ |
> | より大きい | if( A > B ) | AがBより大きければ |
< | より小さい | if( A < B ) | AがBより小さければ |
>= | 以上 | if( A >= B ) | AがB以上ならば |
<= | 以下 | if( A <= B ) | AがB以下ならば |
「等しい/等しくない」といった条件は、数の比較や、文字の比較で使うよ
「より大きい/より小さい」といった条件は、数の比較で使うよ。
「以上/以下」の条件も、数の比較で使うよ。
詳しい説明は、以下にまとめたから見てみてね。
↓
リンク
条件に合致しなかったとき
条件を考えるときに、忘れちゃいけないのが、条件に合致しなかった場合のこと。
たとえば、「もしテストで70点以上取ったら、合格だよ」という条件のとき、
「もしテストで70点以上取ったら、合格だよ。でも、70点に満たなかったら、1週間後に同じテストをするよ」
となるのか、
「もしテストで70点以上取ったら、合格だよ。でも、0点のときは宿題にプリント5枚追加だよ」
もしくは
「もしテストで70点以上取ったら、合格だよ。でも、70点に満たなかったら、1週間後に同じテストをするよ。0点のときは宿題にプリント5枚追加だよ」
となるのか、同じ「もしテストで70点以上取ったら、合格だよ」という条件でも、条件に合わなかったときの処理は、たくさん考えられるんだ。
だから、条件を決めるときには、その条件に当てはまらない場合のパターンも考える必要があるんだよね。
それぞれをプログラムで書いてみよう。
「もしテストで70点以上取ったら、合格だよ」をプログラムで書くと
if ( テストの点数 ≫=70 ) { テスト合格 }
だったね。
これをベースに考えてみよう。
もしテストで70点以上取ったら、合格だよ。でも、0点のときは宿題にプリント5枚追加だよ
「もしテストで70点以上取ったら、合格だよ。」の条件のあとに「でも、0点のときは宿題にプリント5枚追加だよ」を追加するんだね。
if ( テストの点数 ≫=70 ) { テスト合格 } else if ( テストの点数 =0 ) { 宿題にプリント5枚追加 }
と書くことができるよ。
「else if」が増えたことに気づいたかな?
「else if」は、1つ目の条件に当てはまらなかったときに使う、次の条件という意味なんだ。
複数条件を使うときには、必ず「else if」を使うからね。
また、「else if」を使う場合、以下のように書くこともできるよ。
if ( テストの点数 ≫=70 ) { テスト合格 } else { if ( テストの点数 =0 ) { 宿題にプリント5枚追加 } }
「else」だけになると「1つ目の条件に当てはまらない場合の全て」という意味になるんだ。
if文の中に、if文を書くことを「ネスト」するというよ。ネストのことを「入れ子(いれこ)」と呼ぶこともあるよ。
「ネスト」は便利だけど、使いすぎちゃうと複雑になりすぎちゃうこともあるから使いすぎには注意が必要だよ。
さて、2つの条件をみて、何か気づいたことはないかな?
実は、この2つの条件じゃ不十分なんだ。
どうしてかって?
「もしテストで70点以上取ったら、合格だよ。」
「0点のときは宿題にプリント5枚追加だよ」
この2つの条件は「70点以上のとき」と「0点のとき」という2つのパターンしか設定されていないよね。
それじゃあ、テストの点数が1点から69点の場合は?
「70点以上」でもないし、「0点」でもないよね。
そんなときはどうする?
今回は「テストの点数が1点から69点の場合は、宿題にプリント2枚追加だよ」という条件を追加してみよう。
つまり、
「もしテストで70点以上取ったら、合格だよ。でも、0点のときは宿題にプリント5枚追加だよ。それ以外の子は、宿題にプリント2枚追加だよ」
if ( テストの点数 ≫=70 ) { テスト合格 } else if ( テストの点数 =0 ) { 宿題にプリント5枚追加 } else { 宿題にプリント2枚追加 }
「もしテストで70点以上取ったら、合格だよ。でも、テストの点数が1点から69点の場合は、宿題にプリント2枚追加だよ。そして。0点のときは宿題にプリント5枚追加だよ。」
if ( テストの点数 ≫=70 ) { テスト合格 } else if ( テストの点数 >=1 and テストの点数 <=69 ) { 宿題にプリント5枚追加 } else if ( テストの点数 =0 ) { 宿題にプリント5枚追加 }
言葉でも、いろんな言い方ができるように、条件式の書き方も一つじゃないんだ。
そして、「and(アンド)」という新しいのも出てきたね。
「and」というのは、複数の条件を同時に調べるときに使うんだ。英語の単語で「and」という文字を見たことないかな?
「and」は、「テストの点数が1点から69点の場合」という範囲を指定するときや、
「国語テストの点数は70点以上、算数テストの点数は60点以上で合格」という2以上の条件があるときに「and」を使うんだよ。
「and」の仲間には、「AもしくはB」を表す「or」や
「Aではない(否定)」を表す「Not」があるよ。
そして、それらは論理演算子(ろんりえんざんし)って呼ばれているんだ。
論理演算子(ろんりえんざんし)については、以下の記事に詳しくまとめてあるから読んでみてね。
↓
リンク
複雑な条件式は図にしてみよう
ここからは図にしてに考えてみよう。
さきほどの「もしテストで70点以上取ったら、合格だよ。でも、テストの点数が1点から69点の場合は、宿題にプリント2枚追加だよ。そして。0点のときは宿題にプリント5枚追加だよ。」
を図で表すと
+——– 合格 | 一致 | 70点以上 |+——– 宿題にプリント2枚追加 | 不一致| 一致 || +——– 1点から69点 |+——– 宿題にプリント5枚追加 | 不一致| 一致 || +——– 0点 | | 不一致 +——– テスト日に欠席
そうすると、「テストを受けていない子」もいるってことが分かったね。
そうなんだよ。先ほどまでは、ずっと無意識のうちに「全員がテストを受けている」という条件ができていたんだ。
でも、こうやって図にしてみると「テストを受けていない」場合のことも考えなきゃいけないってことに気づけるね。
条件が多くなるほど、考えも難しくなっていくから図のように表して、頭を整理するのは大事だよ。
もし正しい図にならないのであれば、条件の作り方が間違っているかもしれないよ。
条件と聞くと「難しい」って思われるかもしれないけど、結局は「はい」か「いいえ」で答えられる質問を繋げているだけなんだ。
「ぶどうは好き?」ってね。
で、返ってくる答えのパターンを「好き」「嫌い」「どちらでもない」って考えると、どんな図になるかな?
考えてみてね。
さっきの図から「一致」「不一致」以外の文字は消してあるよ。答えは、このページの最後に書いておくね。
+——– 合格 | 一致 | |+——– | 不一致| 一致 || +——– |+——– | 不一致| 一致 || +——– | | 不一致 +——–
ヒント!!
プログラミングで書くと
if ( ぶどうが好き? ) { 好き }else if ( ぶどうが嫌い? ) { 嫌い }else if ( どちらでもない ) { 好きでも嫌いでもない }else { 食べたことがない }
になるよ^^
まとめ
条件についてまとめるよ。
- 条件は、「条件分岐(じょうけんぶんき)」
- 普段の生活でも条件は使われている
- 「≫=」などは比較演算子(ひかくえんざんし)とよばれる
- 「and」などは論理演算子(ろんりえんざんし)とよばれる
- 条件に合致しなかったときのことを忘れないで
- 複雑な条件式は図にしてみよう
さきほどの問題の答えだよ。
こういう図が書けたかな?
+——– 好き | 一致 | ぶどうが好き? |+——– 嫌い | 不一致| 一致 || +——– いいえ |+——– 好きでも嫌いでもない | 不一致| 一致 || +——– どちらでもない | | 不一致 +——– 食べたことがない
簡単だったかな?
もし難しかったら、自分で問題を考えてみて図にしてみると、より考えやすくなるから挑戦してみてね。
コメント