Rubyで数値計算を行なうには、数学とほぼ同じ書き方で記述する。
ただし、掛算記号は*、割算記号は/で
表す。括弧は丸括弧 ( ) 一種類だけを使用し、
式全体が1行で完結するように書く。
代表的な演算子を列挙する。
| 演算子 | 意味 |
|---|---|
| + | 加算 |
| * | 乗算 |
| - | 減算 |
| / | 除算 |
| % | 剰余 |
| ** | 巾乗(べき乗) |
一つの式に演算子が複数現れるときは、優先順位の高いほうが先に 計算される。上記の演算子を優先順位の高い順に並べると以下のようになる。
| 高 | ←→ | 低 |
|---|---|---|
| ** | * / % | + - |
この順位は基本的に数学と同じで、たとえば
1+2*3
は、+よりも*が高い優先順位なので、
2*3 が先に計算されるので答は7となり、
1+2*3**2
は、*よりもさらに順位の高い**が
最初に計算されるので答は1+2*9=1+18=19
となる。括弧 ( ) があれば、先に括弧内が計算される。
内側の括弧の方が高い優先順位を持つ。
((1+2)*3)**2
は、1+2が最初に、次に *3 が、
最後に**2 が計算される。
数式との対応をいくつか挙げておこう。
| 数学 | Rubyの式 | |||
|---|---|---|---|---|
1+2×3 |
1+2*3 |
|||
(1+2)÷3 |
(1+2)/3 |
|||
|
(x+y+z)/3 |
次のものは変数への代入を伴う。
| 代入演算子 | 意味 |
|---|---|
| = | 通常代入 x=5 |
| += | 加算代入 x+=5 でxが5増える |
| *= | 乗算代入 x*=5 でxが5倍になる |
| -= | 減算代入 x-=5 でxが5減る |
| /= | 除算代入 x/=5 でxが1/5になる |
| %= | 剰余代入 x%=5 は x = x%5 と同じ |
| **= | 巾乗代入 x**=5 は x=x**5と同じ |
変数xの値が10であると仮定したときに、
代入演算によってxがどう変わるかを示す。
| 代入演算 | その後のxの値 |
|---|---|
x += 1 | 11 |
x *= 2 | 20 |
x -= 1 | 9 |
x /= 2 | 5 |
x %= 3 | 1 |
x **= 2 | 100 |
制御構造の判定条件式等に利用する演算子のことを 論理演算子という。基本的なプログラムでも頻繁に利用する ものを以下に示す。
| 比較演算子 | 意味 |
|---|---|
| == | 左辺と右辺が等しいか |
| < | 左辺が右辺より小さいか |
| <= | 左辺が右辺以下か |
| > | 左辺が右辺より大きいか |
| >= | 左辺が右辺以上か |
| && | 「かつ」 |
| || | 「または」 |
| ! | 否定 |
| not | 否定 |
いくつか例を示す。
もしanswer変数の値(文字列)が "yes"
と等しかったら「ほげほげ」
if answer == "yes" then ほげほげ end
もし x が12以下で、なおかつ
xが1以上なら「ほげほげ」
if x <= 12 && x >= 1 then ほげほげ end
もし y が "はい" と等しいかまたは、
y が "yes" と等しい場合は「ほげほげ」
if y == "はい" || y == "yes" then ほげほげ end