式と演算

コンピューターは、さまざまな情報を処理することで、価値のある新しい情報を生み出すことが得意です。以下は、情報を処理するということのほんの一例です。

  • 四則演算などの計算
  • 数列の並び替え
  • 条件に一致する数値の探索
  • 文章から特定の単語の出現位置を求める

算数や数学で学んでいることは、問題に含まれる情報から、知りたいことを計算で導き出すという、情報処理の手法を学んでいると言い換えても良いでしょう。例えば、以下のような計算問題の例を考えます。

  • リンゴが5個あります。オレンジが10個あります。合計で何個でしょうか?

上記で与えられた情報は、以下です。

  • リンゴの個数は、5個である。
  • オレンジの個数は、10個である。

そして、知りたい情報は、合計の個数です。答えを得るためには、以下の計算式が必要になります。

  • 5 + 10

ここでは、合計の個数を求めるために、足し算(加算とも言います)を使いました。上記の答えは、15 ですね。つまり、合計の個数である 15 個という新しい情報を生み出したことになります。

足し算など計算に使用する記号のことを「演算子」と呼びます。Jasmine Tea で使用することができる演算子は、算術演算子、関係演算子、論理演算子の 3 種類があります。

  • 算術演算子 - 足し算、引き算、掛け算、割り算の商、割り算の余りを計算するための演算子です。
  • 関係演算子 - 2つの数値が一致しているか、どちらか大きいか、を比較するための演算子です。
  • 論理演算子 - 論理積(AND)、論理和(OR)、否定(NOT)、排他的論理和(XOR)を行うための演算子です。

計算式に代表される、数値や変数、関数、文字列を演算子で連結したものを、Jasmine Tea では「式」と呼びます。また、数値や変数、関数だけのものも、式と呼びます。以下は、全て式です。

  • (10+3)/5
  • a+b/c-d
  • "JASMINE"
  • 3.14
  • a$
  • random(1,6)
  • x*32+random(0,64)

プログラムの中に書かれた式は、式が書かれた命令が実行された際に計算されて答えが得られます。式に書かれた内容に従って答えを求めることを「式を評価する」と言います。式に含まれる数値や文字列、変数に記憶された数値や文字列、関数の結果得られた数値や文字列に基づいて、演算子ごとに決められた計算が行われていきます。

式の評価結果は、let 命令を使って変数に記憶したり、その他の命令のパラメーターとして利用します。Jasmine Tea では、式のみをプログラムの行に記載することはできません。式は、何らかの命令のパラメーターとして利用することになります。

算術演算子

演算子 計算内容 数学での表現
+ 加算 a+b a + b
- 減算 a-b a ー b
* 乗算 a*b a × b
/ 除算 a/b a ÷ b
% 剰余 a%b a ÷ b の余り

演算子の優先順位(計算の順番)は、以下です。

優先順位 算術演算子
1 * /
2 %
3 + -

Jasmine Teaプログラミング言語は小数点を含む演算を行うことができます。計算結果の小数点以下16位以降は、切り捨てられます。

「+」演算子は、文字列と配列に対応しています。2つの文字列を「+」演算子によって連結させることができます。例えば、"abc" + "def" の結果は、"abcdef" となります。また、2つの配列を「+」演算子によって連結させることができます。例えば、[1,2,3] + [4,5,6] の結果は、[1,2,3,4,5,6] となります。

関係演算子

演算子 意味
= 両辺が等しい
<> 両辺が等しくない
> 左辺が右辺より大きい
< 左辺が右辺より小さい
>= 左辺が右辺と等しいか大きい
<= 左辺が右辺と等しいか小さい

関係演算子の結果は、真のときは -1、偽のときは 0 となります。

論理演算子

優先順位 演算子 意味
1 not 否定
2 and 論理積
3 or 論理和
4 xor 排他的論理和

論理演算子は、ビット単位で 0 と 1 の論理演算を行います。論理演算は、32ビットの整数に変換した後に計算されます。

演算子の優先順位

演算子の種別は、以下の優先順位で評価されます。

  1. 算術演算子
  2. 関係演算子
  3. 論理演算子

全ての演算の優先順位は、以下となります。

  1. ( ) で囲まれた式
  2. 関数
    • / (乗算、除算)
  3. % (剰余)
      • (加算、減算)
  4. = <> > < >= <=
  5. not
  6. and
  7. or
  8. xor

計算式と条件式

数値、演算子、変数や関数を組み合わせることで、計算を行うことができます。何らかの計算を目的とした式を、計算式と呼びます。計算式では、主に算術演算子や関数が使われます。以下は、計算式の例です。

  • (10+3)/5
  • a+b/c-d
  • x*32+random(0,64)

計算式は、算数や数学で学んだ式と考え方は同じです。計算式に基づいて計算された結果が、その式の評価結果となります。

式には、計算が主目的ではなく、「ある条件が成り立ったかどうか」ということを目的とした式があります。これを条件式と呼びます。条件式では、主に比較演算子や論理演算子が使われます。条件式は、以下のようなものです。

  • a=1 (数値変数 a が記憶している数が 1 かどうか)
  • a<b (数値変数 a が記憶している数よりも 数値変数 b が記憶している数の方が大きいかどうか)
  • name$="yoichiro" and age=47 (文字列関数 name$ が記憶している文字列が "yoichiro" かつ数値変数 age が記憶している数が 47 かどうか)

比較演算子や論理演算子を使うと、条件に一致したときは -1、条件に一致しなかったときは 0 が評価結果として得られます。式の評価結果が -1 なのか 0 なのかを確認することで、その条件が成立したかどうかがわかります。条件式は、if 命令や do 命令、loop 命令などで使用します。