コンピュータの特技は記憶と計算です。計算はプログラム中に式を記述することによって実現します。
コンピュータでできる計算は加減乗除、つまり足し算、引き算、かけ算、割り算です。ちなみに累乗はかけ算の組み合わせで実現します(言語によっては標準の機能として持っている場合もあります)。
// 足し算 1 + 2; // 引き算 3 - 2; // かけ算(×ではなく * を使う点に注意) 4 * 5; // 割り算(÷ではなく / を使う点に注意) 6 / 3;
この例ではただ単純に数値同士で計算しているだけですが、たいていの場合、計算の結果をどこかに保存する目的で式を書きます。保存先として利用できるのが変数です(「変数を作る – 宣言」と「変数にデータを保存する – 代入」を参照ください)。
// 足し算 add = 1 + 2; // 引き算 sub = 3 - 2; // かけ算(×ではなく * を使う点に注意) mul = 4 * 5; // 割り算(÷ではなく / を使う点に注意) div = 6 / 3;
実際にゲームを作る場合、たとえば攻撃力増加の薬を飲むと STR が倍になるという仕様があるとします。 STR はレベルや装備品によって数値が増減し、一定しないとすると何を基準に倍にすれば計算すれば良いのでしょうか?
問題ありません、式の中に変数を書くことができます。
// 薬を飲んで攻撃力が倍になった STR = STR * 2; // ハリセンボンをくらった HP = HP - 1000; // 毒のダメージを受けた HP = HP * 0.9;
このように左辺の変数を右辺の式の中に使うこともできます。これは代入が右辺を計算してから結果を左辺に保存するという順番に定められているためです。
result = opr + 10; // result = opr + 10; // ~~~~~~ ~~~~~~~~ // 保存 ← 計算してから
また、計算式の中には優先度があります。我々の常識と同じようにかけ算と割り算の優先度が足し算と引き算より高くなります。もし、かけ算と割り算より先に計算したい場合にはカッコでその部分をくくります。
// 敵に攻撃して HP を減らした // ダメージは自分の STR と敵の DEF の差とする EnemyHP = EnemyHP - (PlayerSTR - EnemyDEF); // クリティカルヒット、ダメージが2倍 EnemyHP = EnemyHP - (PlayerSTR - EnemyDEF) * 2;
Comments
[...] 計算する – 式 [...]
Contributions