第四回 『if-else文』と『インデント』について

プログラミング編

はじめに

if文について

マサト先生
マサト先生

やあ、こんにちは。今回はif-else文について学んでいこう。

ヒロト
ヒロト

はい!よろしくお願いします。

マサト先生
マサト先生

まず、if文を使うと、指定した条件が成り立つときだけ処理を実行できるようになるのだ。では、いつも通りビットアローを起動させて、今日使う新しいファイルを作成するところまでやってみよう。

ヒロト
ヒロト

前回『file3』を使ったので、今回は『file4』を作成すればいいですね。

はい、出来ました!準備オーケーです。

マサト先生
マサト先生

よし、だいぶ慣れてきたみたいだな!さて、実際にプログラム書く前にいくつか基本的なことを伝えておきたい。まず、if文の書き方はが決まっていて次のように書かなくてないけないのだ。

if文の型

if 条件式:
   処理

マサト先生
マサト先生

詳しくは、ifの後に空白一つを必ず入れてから条件式を書く。そして、条件式のすぐ右側には必ずコロン『:』を書くのだ。そして、2行目の処理の部分にはprint関数など任意のプログラムを書くことができるのだ。っと言われてもピンとこないだろう?とりあえず簡単なif文を書いてみるから見てくれ。

ヒロト
ヒロト

はい、お願いします!

マサト先生
マサト先生

さて、上から順にみていこう。1行目は変数aに123という数値が代入されている。2行名からif文が始まるが、条件式は『a==123』となっているが、これは『aが123に等しい』という条件を表す。そして、そのときの処理はというとprint関数で『’aは123です’』という文字列を表示させるというものになっているのだ。これを実行するとどうなるかわかるかい?

ヒロト
ヒロト

うーんと、aは123にもちろん等しいので処理が実行されるはずです。なので、『’aは123です’』という文が表示されます!

マサト先生
マサト先生

正解だ!ちなみに第1行目でa=100にすると、条件式を満たさないので処理は実行されないので結果何も表示されなくなるのだ。一度試してみるといいだろう。

ヒロト
ヒロト

はい、確かに何も表示されませんでした。

インデントについて

マサト先生
マサト先生

ここで、if-else文などの条件文を書く時に意識しなくてはならない重要なことについて説明する。それは、インデントというものだ。インデントとは空白を意味する言葉だ。上に書いたプログラムを用いて説明しよう。下の画面を見てほしい。3行目の条件が成り立つときに実行されるprint関数の左側に何文字かの空白部分があることが見て取れるだろう?

ヒロト
ヒロト

はい、いくつかの空白部分があります。正直、特に気にしていませんでした。

マサト先生
マサト先生

これが、とても重要な役割をするのだ。つまり、if文はインデントされている行を処理する範囲と判断するのだ!インデントには4個の半角スペースを使うことが多い。今回の処理は、print関数の一つだけだが、処理に複数のプログラムを書く場合インデントの個数がそろってないとエラーになるから注意が必要なのだ!

ヒロト
ヒロト

そんな重要な役割があったのですね!でも、そのつど空白を4個作らなければならないなんて大変ですね?

マサト先生
マサト先生

ふふふ、安心してくれ。条件文を書いた後にコロン『:』を書くだろう?その後、次の行に移るためにエンターキーを押すと思うが、そのとき自動的に空白部分が4個できるのだ!これは実際に書いてみると分かるぞ!上と同じプログラムを書いて、コロンのあとにエンターキーを押してみてくれ。確認した後は3行すべて消去して大丈夫だぞ。

ヒロト
ヒロト

はい!確かに自動的に空白部分が出来ました!

パスワード判定プログラム

マサト先生
マサト先生

では、次のプログラムに歩を進めよう。今度は、『キーボードから入力した文字列が正しいパスワードかどうか判定するプログラム』を書いてみよう。だんだんそれらしくなってきただろう?前回学んだinput関数も使うぞ!まずは、pwという変数に好きなパスワードを代入しておくことがポイントだ。下の画面を見てくれ。

マサト先生
マサト先生

一行目から見て行こう。一行目で正解のパスワード『flower』を変数pwに代入している。このパスワードとキーボードから入力された文字列が等しければ、print関数を用いて画面に『OK!』と表示する。2行目のinput関数でキーボードから入力した文字列は、変数aに代入して、if文でa==pwが成り立つとき、print関数が実行されるというわけだ。このプログラムを実行してみると・・・

else文について

ヒロト
ヒロト

なるほど!もし、間違ったパスワードを入力したとき、正しくないことを入力した人に伝えたいときはどうするのですか?

マサト先生
マサト先生

よくぞ聞いてくれた!そんな時にはelse文を使うのだ。else文はif文の条件が成り立たなかった場合の処理を実行してくれる。つまり、つぎのような型になっているぞ。

if-else文の型

if 条件式:
   処理1
else:
   処理2
                                                  

ヒロト
ヒロト

elseすぐ右側にもコロン『:』をつけなくてはいけないのですね!忘れないようにしなくっちゃ!

マサト先生
マサト先生

その通り!そして見ての通り、if文とelse文の先頭はそろえて書くのだ!自動的に作られたインデントはバックスペースで消去して先頭をそろえるといいだろう!そして、elseの右にコロンを付けてエンターキーを押すと、下の行もif文と同じく自動的にインデントされるからそれに従って書くのだ。では、先ほどのプログラムに追加する形で書いてみるぞ。

ヒロト
ヒロト

間違えて、hanaという文字を入力したところ、ちゃんと違うことを教えてくれましね!

マサト先生
マサト先生

そういうことだ。このif-else文はとても応用が利くプログラムである。今後様々な場面で出てくるからそのつもりでいてくれ。では最後に練習問題だ!

ヒロト
ヒロト

来ましたね!

練習問題3

マサト先生
マサト先生

問題は次の通りだ。

問題

if-else文を用いて、入力された文字列が『math』というパスワードに等しければ『ログインOK!』を表示し、間違っていたら『Wrong Password!』と表示するプログラムを書こう。

解答

ヒロト
ヒロト

出来ました!次のようになります。

パスワードが正しいとき


パスワードが正しくないとき


マサト先生
マサト先生

いずれの場合も正しく動作しているみたいだな。うむ、完璧だ!

今日はif-else文について学んだ。次回はfor文というものについてやろうと思ってるので楽しみにしてくれ。では今日はここまでにしよう。お疲れさん。

ヒロト
ヒロト

はい、ありがとうございました!

コメント

タイトルとURLをコピーしました