算術演算子
単項演算子
1 2 3 4 5 6 |
a = -2 puts +a puts -a # -2 # 2 |
算術演算子と括弧
1 2 3 |
puts (3 - 1) / 2 + 2 * 4 # 9 |
除算は被除数・除数とも整数の時は小さい側の整数に丸められる(floor)。いずれかあるいは両方が実数の時は実数になる。
1 2 3 4 5 6 7 8 9 |
puts 14 / 3 puts -14 / 3 puts 14.0 / 3 puts 14 / 3.0 # 4 # -5 # 4.666666666666667 # 4.666666666666667 |
'%'
で剰余を計算。
1 2 3 |
puts 14 % 3 # 2 |
'**'
でべき乗を計算。
1 2 3 |
puts 2**3 # 8 |
文字列演算子
結合
'+'
演算子は2つの文字列の結合結果を返し、元の文字列は保持される。
1 2 3 4 5 6 7 8 9 |
s1 = "おはよう" s2 = "ございます" puts s1 + s2 puts s1 puts s2 # おはようございます # おはよう # ございます |
'<<'演
算子は2つの文字列の結合結果を返し、1つ目の変数を結合結果で書き換える。
1 2 3 4 5 6 7 |
puts s1 << s2 puts s1 puts s2 # おはようございます # おはようございます # ございます |
'*'
演算子は文字列を繰り返して複製して結合。
1 2 3 |
puts "はい" * 3 # はいはいはい |
ビット演算子
'~'
は前値の否定演算子。
1 2 3 |
puts ~127 # -128 |
’&’
、’|’
、'^'
はそれぞれAND、OR、XOR。
1 2 3 4 5 6 7 |
puts 0b0101 & 0b1010 puts 0b0101 | 0b1010 puts 0b0101 ^ 0b1010 # 0 # 15 # 15 |
'<<'
、'>>'
は指定した数だけシフトする演算子。
1 2 3 4 5 |
puts 0b0101 << 1 puts 0b1010 >> 1 # 10 # 5 |
数値比較演算子
数値の比較演算子は標準的な定義。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
puts 1 == 1 puts 1 == 2 puts 1 != 1 puts 1 != 2 puts 1 < 2 puts 1 > 2 puts 2 <= 2 puts 3 >= 3 # true # false # false # true # true # false # true # true |
文字列比較演算子
1 2 3 4 5 6 7 8 9 |
puts "one" == "two" puts "one" == "one" puts "one" != "two" puts "one" != "one" # false # true # true # false |
論理演算子
'!'
は前値の否定演算子。
1 2 3 4 |
puts !true, !false # false # true |
'&&'
、'||'
は論理積、論理和。
1 2 3 4 5 6 7 8 9 |
puts true && true puts true && false puts false && true puts false && false # true # false # false # false |
1 2 3 4 5 6 7 8 9 |
puts true || true puts true || false puts false || true puts false || false # true # true # true # false |
'and'
、'or'
も論理積、論理和だが挙動が異なる。
1 2 3 4 5 6 7 8 9 |
puts true and true puts true and false puts false and true puts false and false # true # true # false # false |
1 2 3 4 5 6 7 8 9 |
puts true or true puts true or false puts false or true puts false or false # true # true # false # false |
and
、or
演算子は他の殆どの演算・処理に対して優先度が低いため、演算子より前の項がまず実行されてから2項目との評価が行われるため。括弧で優先順位を明示すると&&
、||
と同じ結果になる。
1 2 3 4 5 |
(puts true) and false puts (true and false) # true # false |
1 2 3 4 5 |
(puts false) or true puts (false or true) # false # true |
三項演算子
三項演算子の形。
1 |
[条件式] ? [条件式が真の時の値] : [条件式が偽の時の値] |
使用例。
1 2 3 |
puts 1 > 2 ? "1 > 2" : " 1 < 2" # 1 < 2 |