演算子というものを聞いたことがある人はいますか?
これは「演算」をするためのものです。
演算というのは、1つか2つ、あるいは多数の値を処理して、1つの値を返却する操作のことです。計算、と似たような意味合いだと思って問題ないと思います。
ここでは、HSPで使用できる演算子を紹介していきます。
さて、演算子シリーズ第一弾の「算術演算子」ですが、ラッキーなことにこれは非常に簡単です。
なぜなら、「算数」ですでに習ったからのですから。
mes "7 + 2 = "+ ( 7 + 2 ) // 加法 (足し算) mes "7 - 2 = "+ ( 7 - 2 ) // 減法 (引き算) mes "7 * 2 = "+ ( 7 * 2 ) // 乗法 (かけ算) mes "7 / 2 = "+ ( 7 / 2 ) // 除法 (割り算) mes "7 \\ 2 = "+( 7 \ 2 ) // 剰余演算 (割り算のあまり) stop
おぉ!?
やったー簡単だーと思っていたら、なにやら変なのが紛れておりますぞ?
「ああ、剰余演算か。」
誰だよっ!!!
「
記号 \ を使います。
あと、"7 \\ 2 = " と、\ を2つ重ねたのには理由がありますが、後で説明します。
また、かけ算・割り算の記号が算数・数学のとは違いますが、これは、パソコンで使える記号の数が少なかったせいです。似たような記号で代用していたんですね。
同値かどうかを判断する演算です。
== (もしくは、単に = ) で、等しいかどうか、
!= (もしくは、単に ! ) で、等しくないかどうか
という意味になります。
ところで、演算は値を返すと言いましたが、それでは「等しくない」を表す値とは一体なんでしょうか?
これは、「等しくない」ことを「偽」、「等しい」ことを「真」という特殊な値で表現します。そして、HSPに存在する次の約束事を利用します:
関係演算子というのは、その名の通り2つの値の関係を表すものです。比較演算子といったりもします。
大きい(>)、小さい(<)、以上(>=)、以下(<=) の4パターンがあります。
不等号と同じなので、さほど難しくはありません。
= 付きのタイプは、2つが等しい場合も成立します ( 以上、以下のバージョンですね )。
上と同じように、関係が成り立つときに「真」、成り立たないときに「偽」が返ってきます。
ただし、注意が必要なのは、2つしか比較できないということです。
つまり、数学でありがちな「-2 < x < 3」といったことはできません。
これは、次の「論理演算子」を使って、「-2 < x && x < 3」と、2つに分けてやる必要があります。
この演算子は、英語の授業で習ったはず(?)で、アンド、オアの2つです。
HSPでは記号を使って、&& (または単に & )、||(または単に | ) と表します。
また、and、or と書くこともできます。
ご存知の通り、条件式を連結する演算子です。
int1 = 12 int2 = 27 if ( 5 > int1 && int1 > 16 ) : mes "5 > int1 > 16" if ( int2 == 18 || int2 < 16 ) : mes "int2 は、18 か 16未満です。" stop
意味のあるサンプルではありませんが、こんな具合です。
&& は両方成立する場合のみ成立し、
|| はどっちかが成立すれば成立します。
ビット演算のための演算子として、HSPでは &, |, ^, <<, >> をサポートしていますが、これはややこしいので、次回に回します。
その名の通り、代入するための演算子です。以下の13個が当てはまります。
代入演算子(=) と演算子がくっついているものは、複合代入演算子といいます。
※複合代入演算子はどれも、変数の値と計算する式と、代入文をくっつけただけです。
// 次の2つは同じ意味。<op> には演算子が入ります。
a <op>= b
a = a <op> b
演算子 | 効果 |
---|---|
= | 代入します。つまり、左辺の変数の値を右辺の値に置き換えます。 |
+= | 変数の値に加算した値を代入します。 |
-= | 変数の値から減算して、代入ます。 |
*= | 変数の値に乗算して、代入します。 |
/= | 変数の値から除算して、代入ます。 |
\= | 変数の値から除算したあまりを代入します。 |
++ | 変数の値を 1 増やします。インクリメント演算子。 |
-- | 変数の値を 1 減らします。デクリメント演算子。 |
a = 20 // 20 を代入 a *= 5 // 「a = a * 5」の略 mes "a = "+ a // 100 a ++ // 「a = a + 1」の略 mes "a = "+ a // 101 a -- // 「a = a - 1」の略 mes "a = "+ a // 100 stop
前半は以上で終了です。お疲れ様でした。(+_+;)
最後に、演算子のリストを載っけて終了します。
演算子 | 読み方 | 分類 | 効果 |
---|---|---|---|
+ | 足す | 算術 | 加法( 足し算 )をします。 |
- | 引く | 算術 | 減法( 引き算 )をします。 |
* | かける | 算術 | 乗法( かけ算 )をします。 |
/ | わる | 算術 | 除法( 割り算 )をします。 |
\ | mod | 算術 | これは、割り算のあまりを求める計算です。 |
== (=) | イコール | 関係 | 等しいかどうかを判断します。 |
!= (!) | は、〜ではない | 関係 | == の逆です。 |
< | 小なり | 関係 | 左が、右より小さければ成立する条件です。 |
> | 大なり | 関係 | 左が、右より大きければ成立する条件です。 |
<= | 小なりイコール | 関係 | 左が、右以下なら成立します。 |
>= | 大なりイコール | 関係 | 左が、右以上なら成立します。 |
&& (and) | アンド (かつ) | 論理 | 左右の条件が、両方成立するかどうかを判断します。 |
|| (or) | (左) か (右) の少なくとも一方が | 論理 | 左右の条件のうち、少なくとも一方が成立していれば、成立します。 |
= | --- | 代入 | 変数に値を代入します。代入演算子。 |
+= | --- | 代入 | 変数の値に加算した値を代入します。 |
-= | --- | 代入 | 変数の値から減算します。 |
*= | --- | 代入 | 変数の値に乗算します。 |
/= | --- | 代入 | 変数の値から除算します。 |
\= | --- | 代入 | 変数の値と除算したあまりを代入します。 |
++ | --- | 代入 | 変数の値を 1 増やします。 インクリメント演算子。 |
-- | --- | 代入 | 変数の値を 1 減らします。 デクリメント演算子。 |