MEL合宿の6日目は、前回の「変数」を使って、計算をしてみたいと思います!(`・ω・´)ゞ
初めての計算
MELで計算をしたい場合は、「数術演算子」というものを使ってやります!
名前カッコイイ
∠( ゚д゚)/
言い方は難しいけど、算数と同じように記号を使えばPCが勝手に計算してくれます(*´ω`*)
基本的に「int型」「float型」で計算することができます(重要)
まずは、前回登場した「「x=2」「y=3」のときの「xy+xy」の値を求めろ。」をプログラムでやってみたいと思います!元となるxとyは、前回やりましたね!
int $x = 2; int $y = 3;
掛け算をするには「*(アスタリスク)」、足し算は「+(プラス)」を使います!ほぼ算数と同じ記号ですね(*´ω`*)
計算結果は、変数「z」に代入します。
int $x = 2; int $y = 3; int $z = $x * $y + $x * $y;
最後に、正しく計算ができてるか確認するために、「print」を使って変数「z」の値を表示しましょう!
int $x = 2; int $y = 3; int $z = $x * $y + $x * $y; print $z;
すると、正しい答え「12」が表示されたかと思います!
計算順序
ちなみに、、、
答えが「24」だと思った人は
算数をお勉強し直しましょう♥
プログラムの計算は、算数と同じく「前から」「掛け算・割り算から」「()から」です。カッコについては、算数と同じく「()」を使います。以下のようにカッコをいれると計算結果が変わってきます。
int $x = 2; int $y = 3; int $z = ($x * $y + $x ) * $y; print $z;
数術演算子の一覧
その他の数術演算子は、以下のとおりです。
数術演算子 | 内容 |
---|---|
+ | 足し算 |
– | 引き算 |
* | 掛け算 |
/ | 割り算 |
% | 余剰 |
「余剰」だけ、ちょっと馴染みがないかもしれませんね。これは、割り算をした時の「余り」を求めることができます!例えば、「10%3」は「10÷3の余り」を求めるので「1」になります。
int VS floatの注意
整数のint型と、少数のfloat型の計算はちょっと注意が必要です。int型同士で「1 ÷ 2」をした場合、答えはどうなるでしょう!?0.5!?
int $x = 1; int $y = 2; int $z = $x / $y; print $z;
答えは、、、
なんと「0」
(゚A゚;)ゴクリ
整数のint型同士の場合、少数を扱うことができないのでおかしな計算結果になってしまいます(´・ω・`)
こういう場合は、「キャスト」と言われる方法を使って型を変換します!キャストをするには「float(変数)」や「int(変数)」と言った具合に行います。(`・ω・´)ゞ
int $x = 1; int $y = 2; float $result = float($x) / float($y); print $result;
これで、変数「x」と「y」を「int型からfloat型」に変更してから計算してくれるようになります。もちろん答えを代入する変数も「float型」でないとおかしくなってしまうので注意です。簡単に言うと、float型が登場する計算式は、「全てfloat型に統一」しておけば間違いが無いと思います(`・ω・´)ゞ
計算式のショートカット
上記の計算式は算数のようにやりましたが、MELではプログラムならではの書く方法があります!
数術演算子 | 書き方 | 内容 |
---|---|---|
+= | $x += 100;($x = $x + 100;と同等) | 変数の値に数値を足す |
-= | $x -= 100; ($x = $x – 100;と同等) | 変数の値から数値を引く |
*= | $x *= 2;($x = $x * 2;と同等) | 変数の値に数値を掛ける |
/= | $x /= 10;($x = $x / 10;と同等) | 変数の値を割る |
%= | $x %= 2;($x = $x % 2;と同等) | 変数の値を割った余り |
++ | $x++;($x = $x + 1;と同等) | 変数の値に1を足す |
— | $x–;($x = $x – 1;と同等) | 変数の値から1を引く |
まとめ!
- MELで計算を行うには「数術演算子」を使う!
- 数術演算子は5種類「+, -, *, /, % 」がある!
- int型とfloat型の計算は注意が必要!
- 型を変更するには「キャスト」する!
- 計算式には7種類の「プログラムならではの書く方法」がある!
それでは次回もお楽しみに!!(`・ω・´)ゞ