※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。


(1) こんにちは世界

print "hello, world.\n"

(2) クラスの例

class Counter
  def initialize
    @value = 0
  end

  def inc
    @value += 1
  end

  def value
    return @value
  end
end

c = Counter.new
c.inc
c.inc
print c.value,"\n"

(3) 数列でループ処理

def sum(first, last)
  s = 0
  for i in (first..last)
    s += i
  end
  s
end

puts sum(1, 10)
puts sum(101, 200)
puts sum(-30, 30)

(4) 何も起こらない(でもエラーじゃない)

12345

(5) 同上

10 - 4

(6) 数値定数

print 1023,"\n"   # 整数
print -3.3,"\n"   # 浮動小数
puts 011          # 整数(8進数)
puts 3.2e-11      # 浮動小数
p 0x1f            # 整数(16進数)
p 2e3             # 浮動小数
※実行結果
1023
-3.3
9
3.2e-11
31
2000.0

(7) 表示動作

puts 1, -2.23, 6
print 5.4, 1.1, -3.23
※実行結果
1
-2.23
6
5.41.1-3.23

(8) 計算式あれこれ

puts 1+2+3+4   # =>10
puts 4*3 - 2*2 # =>8 (12-4)
puts 4*(3+2)*2 # =>40 (4*5*2)
puts 12 / 5    # =>2
puts -12 / 5   # =>-3 (-3あまり3。余りは非負の値で出る)
puts 12.0 / 5  # =>2.4
puts 12 / 5.0  # =>2.4
  • puts (2+3)*5 のような書き方をするとエラーになる
    • これは (puts(2+3))*5 という意味に解釈されてしまうから
    • この場合は puts ((2+3)*5) というように全体を括弧でくくる
  • まぎらわしくないときに全体を囲ってもタイプ量が増えたりするだけで、特に問題はない

(9) 計算式あれこれ

puts 123%23             # =>8
puts 123/23*23 + 123%23 # =>123
puts 2**2**6            # =>18446744073709551616
puts 2**(2**6)          # =>18446744073709551616
puts ((2**2)**6)        # =>4096 (全体を括ることに注意)
puts 2**3 + 3*2**2      # =>20
puts ((-3)**2)          # =>9 (全体を括ることに注意)
puts 2**-2              # =>0.25
puts 2**0.5             # =>1.414213562
puts -3**0.5            # =>-1.732050808 (-(3**0.5) と解釈される)
  • (-3)**0.5 などはエラーになる
  • 0**0 と 0**0.0 は 0 になるが、0.0**0 と 0.0**0.0 はエラーになる

(10) インスタンスメソッド

puts -2.3.abs      # =>2.3

puts 3.5.floor     # =>3
puts -3.5.floor    # =>-4

puts 3.5.round     # =>4
puts -3.5.round    # =>-4

puts 3.5.ceil      # =>4
puts -3.5.ceil     # =>-3

puts 3.5.truncate  # =>3
puts -3.5.truncate # =>-3

puts 2.3.to_i      # =>2
puts 2.to_f        # =>2.0
  • まとめ
    • 数値.abs で絶対値
    • 数値.floor で数値を超えない最大の整数(切捨て)
    • 数値.round で小数点以下を四捨五入した値(整数)
    • 数値.ceil で数値を越える最小の整数(切り上げ)
    • 数値.to_i で数値を整数に(truncateと同じ)
    • 数値.to_f で数値を浮動小数にする
  • 演算子とはまた違った扱いになりる
  • 優先度はどんな演算子よりも高い