0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Jasmine Teaで条件分岐!

Last updated at Posted at 2023-12-06

この記事は、 Jasmine Tea アドベントカレンダー 2023 の第6日目です。

はじめに

Jasmine Tea (ジャスミンティー) は、プログラミングの楽しさを多くの人に知ってもらうために作られたプログラミング言語です。初心者が学びやすい仕組みで、実際に社会で使われている多くのプログラミング言語に応用できる基礎が身に付きます。

ここでは、Jasmine Teaを実際に開いて、状況に応じてプログラムの動作を変化させる方法について紹介しようと思います。

まず、Studio 画面を開いてください。もし Studio 画面をまだ開いたことがなければ、 Studio画面を表示する - Jasmine TeaでHello, world! を参考にして Jasmine Tea の試用を開始してください。

プログラムは「状況が刻々と変わる」

コンピューターに様々なことをやってもらうために、何をどういった順番でやってもらうかを記載したプログラムを作ります。「最初にこれをやって、次にあれをやって、その次にそれをやって、...」といった「命令を順番に並べて実行してもらう」という順次実行が基本となります。

そうやって複数の命令をコンピューターに行ってもらっているときに、コンピューターの中では状況が刻々と変わっています。「状況が刻々と変わっている」とは一体なんのことを言っているのか、ピンとこないかもしれません。

例えば、以下のプログラムを考えてみましょう。

face=random(1,2)

Jasmine Teaでこのプログラムを実行すると、変数 face には random 関数 によって 12 のいずれかの数が代入されます。

はい、ここで、状況に変化が起きました。

  • 変数 face が記憶している数が変化した。

ということです。

昔、ブランコに乗りながら、履いている靴を飛ばして、地面に落ちた靴が「上を向いていたら明日は晴れ」「下を向いていたら明日は雨」なんてことをした経験はありますか?靴が上を向いているか、ひっくり返っているか、それは基本的には2分の1の確率です。

まさに、変数 face の数が 1 だったら「明日は晴れるでしょう」と表示し、2 だったら「明日は雨が降るでしょう」と表示するプログラムを作りたいとしたら... その時の状況に応じて、実行したい命令が変わってくることになります。

このように、状況に応じてプログラムの動作を変化させることを「条件分岐」と呼びます。

if 命令を使って条件分岐してみよう

Jasmine Teaでは、条件分岐をするために、if 命令 を使います。では、Studio画面の左にあるエディターに、以下のプログラムを入力してください。

face=random(1,2)
if face=1 then
  print "明日は晴れるでしょう"
end if

2行目の if 命令の後ろに、face=1 then と書かれています。この中の face=1 は、「条件式」と呼ばれています。「え、変数に代入する書き方ではないの?変数 face1 を代入するんじゃないの?」と思った方もいらっしゃるかもしれません。はい、そう思ってしまっても仕方ないです。

変数に数が代入されるときは、以下のように「プログラムの対象の行に face=1 とだけ書かれたときだけ」です。

face=1

それに対して、命令の後ろに書くことになる「式」で = 記号を使ったときは、「右辺と左辺が等しいかどうか」を確認する式になります。

つまり、if face=1 then を日本語に直すと、「変数 face に代入されている数が 1 だったら」となります。

Screenshot_20231206_103948.png

4行目に end if 命令が書かれています。if 命令から end if 命令の間の行に書かれた命令が、条件式が成立したときに実行されます。ここでの条件式は face=1 なので、変数 face に代入されていた数が 1 だったときのみ、3行目の print "明日は晴れるでしょう" が実行されます。

では、プログラムを実行してみましょう。エディターの下にある青色の「実行」ボタンを押して、プログラムを実行してみてください。そして、「実行」ボタンを何度か押して、プログラムを何回か実行してみてください。

もし変数 face1 が代入されていたときは、実行画面には以下のように表示されます。

Screenshot_20231206_111336.png

一方、変数 face2 が代入されていたときは、実行画面は以下のようになります。

Screenshot_20231206_111356.png

状況に応じて命令を実行したりしなかったりすることができるようになりました。

条件式が成立しなかったときにも対応しよう

投げた靴が上を向いていたとき、つまり変数 face に代入された数が 1 のときに「晴れ」を表示できるようになりました。しかし、上記のプログラムでは、2 が代入されたときに「雨」と表示できていません。

if 命令に書いた条件式が成立しなかったときに実行したいことがある場合は、else 命令を組み合わせて実現します。では、エディターの3行目と4行目の間に、以下のプログラムを追記してみてください。

else
  print "明日は雨が降るでしょう"

エディターには以下のようにプログラムが入力されているはずです。

Screenshot_20231206_112927.png

if 命令は、条件式が成立しなかったときは、else 命令の次の行にジャンプします。つまり、変数 face2 が代入されていたときは、3行目は実行されずに、5行目の print "明日は雨が降るでしょう" が実行されます。

また、if 命令に書かれた条件式が成立したときは、3行目の print "明日は晴れるでしょう" が実行されますが、次の行は else 命令ですので、end if 命令までジャンプします。これにより、条件式が成立されたときは、5行目は実行されません。

では、実行してみましょう。「実行」ボタンを押して、プログラムを何度か実行してみてください。

Screenshot_20231206_113351.png

「晴れ」だけでなく、「雨」も表示されるようになりました。これで、天気予報プログラムの完成です。

もちろん、このプログラムの実行結果として表示される天気予報は、何ら天気を保証するものではありませんので、ご注意ください。

明日は何をつくるの?

プログラミングは、「順次」「繰り返し」「条件分岐」の3つから成り立っています。この3つにより、世界中のほとんどの命題はプログラミングが可能であると言われています。今回は、その中の「条件分岐」を紹介しました。この3つが理解できれば、あなたもプログラマーの仲間入りを果たしたと言えるでしょう。

明日は、見た目に派手なプログラムである、コンピューターグラフィックスを取り上げる予定です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?