AREA 021
Featuring AlphaScript

STEP 6 演算子

 

演算子(えんざんし)は、プログラミングで四則演算したりするのに使う記述のことです。

四則演算は、足し算・引き算・掛け算・割り算のことですが、これがコンピュータにとって最も得意なことです。  というより、コンピュータがやっているすべての処理の正体は、この基本的な計算によるものです。  コンピュータにおいては、すべてのものが数字で表されていますので、当然といえば当然です。 (この文章だって、文字コードという数字の組み合わせですしね。)

もっと細かく言うと、コンピュータは2つの数値を足し算する、というきわめて単純な計算しかできないそうです。  それを複雑に組み合わせることによって、あらゆる処理を実現しているのです。  こんなものを考え出した昔の人たちはたいしたものですねぇ・・・おっと、話がそれました。^^;

AlphaScript で使える演算子は、以下の通りです。 このあたりからプログラミングっぽくなってきます。

a + ba と b を足した結果
a - ba から b を引いた結果
a * ba と b を掛けた結果
a / ba を b で割った結果
a % ba を b で割った余り

掛け算と割り算の記号が×と÷ではなく、それぞれ * と / になっているのが特殊ですが、 とにかくこれらを使えば四則演算をさせることができます。

また、マイナス値を表すときは、数値や変数名の前に - をつければよいです。  数学のルールと違い、この場合は * -100 のように計算記号が2つ並んでもちゃんと認識されます。

とかいろいろ言っても、初めて見るとどう使うのかよくわからないかもしれませんね。  後に例を示しますので、ご安心を。

a == ba と b が等しいかを判定
a <> ba と b が等しくないかを判定
a < ba が b より小さいかを判定
a > ba が b より大きいかを判定
a <= ba が b 以下かを判定
a >= ba が b 以上かを判定
a & ba と b が両方とも成立しているか判定
a | ba が b のどちらかが成立しているか判定

上記の演算子は、比較演算子と呼ばれ、条件分岐でよく使います。  これらは、通常の計算式では、あまり出番はないです。

等しいかどうかの判定で = を2つ書くのが特徴的ですね。(タイプミスではありません^^;)  これは大抵のプログラミング言語で通用する書き方です。

以下の演算子は、変数の内容を書き換えるものです。  a は必ず変数でなければならず、1つの文でひとつしか記述できません。

a = ba に b を代入する
a += ba に b を足す
a -= ba から b を引く
a *= ba に b を掛ける
a /= ba を b で割る
a %= ba を b で割った余りにする
a @ ba に b を配列の要素として代入する

最後の @ に関しては配列で解説しています。

使用例:

$ x, y, z;

x = 2;
y = 5;
z = 0;

x += 1;
y -= 3;

z = x+y;

このスクリプトを実行後、x は 3 、 y は 2 、 z は 5 になります。 ( x+y の結果を = によって z に代入していますので、 z は x の 3 と y の 2 を合わせた 5 になるのです)

また、各演算子の意味から、

a += 1;  a = a+1;  // 変数に 1 を加算

a *= -1;  a = -a;  // 変数の符号を逆に

は、それぞれ同じ結果になります。  これらの書き方は人によって違ったりしますが、 AlphaScript では前者をオススメします。 (後者だと変数名が2回出現してしまうので)


四則演算の順番は・・・

x+y のような式はいくつもつなげられます。  たとえば、 a+b+c+d と書けば4つの変数の合計を求めることができます。

ここで注意したいのは a*b+c*d のように複数の計算記号を組み合わせた場合です。  算数の授業では、足し算や引き算より、掛け算や割り算の部分を先に計算すると教えられますが、 AlphaScript では、記号に関わらず左から右へ1つずつ順番に計算されます。  ですから、 a*b+c*d なら、 a*b に c を足して、その後 d を掛ける、ということになります。 (ちなみに他のプログラミング言語ではちゃんと順番も考慮されます^^; これにはいろいろ事情があり・・・)

これだと不便なことがあるので、カッコ( )を使って計算を優先させることができます。  a*b+c*d を規則の通りにやってほしいなら (a*b)+(c*d) とすればよいです。  これは算数で習ったのと同じですね。(^^


除算の注意点

普通のプログラミング言語では、整数を 0 で割ろうとするとエラーになりますが、 AlphaScript ではすべて実数で処理されますので、割られた数が「無限」になるだけで、エラーにはなりません。 (もちろん、本来は 0 で割られた数は存在しません)  変数が一度でも無限になると、代入を行わない限りそのままです。

 

ページ一覧に戻る  次のステップへ!

Copyright (c) Rabit 2005-2012 all rights reserved.