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" と等しい場合は「yesだってさ」
     そうでなければ「yesじゃないってさ」と出力する
if y == "はい" || y == "yes" then
  printf("yesだってさ\n")
else
  printf("yesじゃないってさ\n")
end