条件判断

IF 〜 ELSE 〜 END IF

自分には特別の挨拶をする

相手の名前を聞いて挨拶するプログラムを拡張して自分に対してだけ特別の挨拶をするようにします。入力された名前によって判断させます。

SET ECHO "OFF" 
LET  aisatsu$ = "こんにちは"
LET  san$ = "さん"
INPUT aite$
IF aite$ = "自分の名前" THEN
   LET bun$ = aisatsu$ & "おまちしておりました。"
ELSE
   LET bun$ = aisatsu$ & aite$ & san$
END IF
PRINT bun$
END

もちろん "自分の名前" はこのまま入れずに自分の名前に変えます。

の部分が書き加えられた部分です。IF aite$="自分の名前" THEN という部分で入力されたのが自分の名前かどうか調べています。

あるいは、LET jibun$="自分の名前" をあらかじめやっておいて、IF aite$=jibun$ THEN としてもかまいません。

ここの = は "代入" ではなく "等しい" という意味になります。

調べた結果条件が成立していた場合には ELSE までに書かれた内容を実行します。その後は、ELSE 以下をとばして END IF の後の命令に進みます。

条件が成立していないときは、ELSE までをとばして、ELSE から END IF の間に書かれた内容を実行します。もちろんその後は END IF の後の命令に進みます。

IF 条件 THEN
   条件が成立したときにおこなうこと
ELSE
   条件が成立しなかったときにおこなうこと
END IF

例12

相手の名前を聞いて挨拶するプログラムを拡張して自分の名前に対してだけ特別の挨拶をするようにしなさい。確認は自分の名前を入れたときとそうでないときの最低2つのテストをします。

??

結果は、

こんにちはおまちしておりました。 (自分の名前のとき)
こんにちは〜〜さん        (他人の名前のとき)

プログラムの答えは一つではない

結果が同じであればプログラムは細部まで同じである必要はありません。おなじ内容を話すのにいろいろな話のもっていきかたがあるのと同じです。次のようにしても結果は同じです。

SET ECHO "OFF" 
LET  aisatsu$ = "こんにちは"
LET  san$ = "さん"
INPUT aite$
IF aite$ = "自分の名前" THEN
   PRINT aisatsu$ ; "おまちしておりました。"
ELSE
   PRINT aisatsu$ ; aite$ ; san$
END IF
END

話し方に上手下手があるように、わかりやすい話し方や回りくどい話し方があるようにプログラムも目的に応じて結果が同じでもよい・わるいの違いはあります。昔は「効率がよい」のが大切にされましたが、今は「わかりやすい」=「プログラムの間違いがおこりにくい・修正しやすい」ことが大切にされています。

プログラムは将来的に機能を拡張していくことがあります。そのときのやりやすさも大切ですが、どのような拡張がされるかはそのときにならないとわからないことも多く、難しいところです。

数値の比較

INPUT aite$ が INPUT suuchi となり、aite$="名前" が suuchi=4 などとなるだけです。文字変数にだけ $ がつきます。文字変数への代入だけ " で囲むことが必要です。

例13

1〜9までの数字を入力して、あらかじめ決めてある秘密の数字と一致したら「あたり」、そうでなければ「はずれ」を表示するプログラムを作りなさい。

himitsu = 4
と
IF x = himitsu THEN
というのを使いましょう
もちろん 4 は好みの数字にしてかまいません

結果は、

あたり!  (同じ時)
はずれ!  (ちがう時)

聖愛高等学校
http://www.seiai.ed.jp/