This project is maintained by xerial
ソースコードはhttps://github.com/xerial/coding-lessonにあります。
puts "Hello Ruby!"
$ ruby hello.rb
Hello Ruby
変数は値を保存する。
a = 2
b = 3
c = a * b
puts c
$ ruby calc.rb
5
条件分岐
# 入力文字列をintに変換
n = gets.to_i
if n >= 10
puts "#{n}は10以上"
else
puts "#{n}は10以下"
end
>
, <
, >=
, <=
, !=
, ==
#
で始まる行はコメントアウト(実行されない). プログラムの意味を説明したり、一時的にコードをスキップする際に使う
name = 'cat'
# name = 'dog'
# name = 'sheep'
result = case name
when 'cat' then
"猫"
when 'dog' then
"犬"
else
"?"
end
puts result
繰り返して使うコードをまとめる.
def hi(name)
puts "Hello #{name}!"
end
hi("ruby")
hi("world")
name
は変数名。関数の引数(argument)
for i in 1..10
puts i
end
# ruby loop.rb
1
2
3
4
5
6
7
8
9
10
i = 0
while i < 3 do
i += 1
end
例えば4! = 4 x 3 x 2 x 1
, 10! = 10 x 9 x 8 x 7 x .... x 1
を計算したい。
def fac(n)
if(n == 0)
1
else
n * fac(n-1)
end
end
puts fac(4)
puts fac(10)
$ ruby recursion.rb
24
3628800
実行の様子
fac(4)
4 * fac(3)
4 * 3 * fac(2)
4 * 3 * 2 * fac(1)
4 * 3 * 2 * 1
arr = ['apple', 'banana', 'cat', 'dog', 'egg']
puts arr[0]
puts arr[1]
puts arr.length
arr.each {|x|
puts "Hello #{x}"
}
arr.each_with_index {|x, i|
puts "#{i}: #{x}"
}
price = {"apple" => 100, "banana" => 50}
puts price["apple"]
puts price["banana"]
price.each {|product,price|
puts "#{product}: price=#{price}"
}
$ ruby hash.rb
100
50
apple: price=100
banana: price=50
s1 = 'Ruby'
s2 = "Hello #{s1}!"
puts s1
puts s2
puts s2.length
puts s1[0, 2]
puts s2.index(/ll/) # 正規表現で検索
a = [1, 2, 3]
puts a.join(", ")`
コンピューターの世界では、数字は2進数で表されます。
(0 .. 16).each {|i|
puts "#{i}: binary #{i.to_s(2)}, hex: #{i.to_s(16)}"
}
$ ruby bits.rb
0: binary 0, hex: 0
1: binary 1, hex: 1
2: binary 10, hex: 2
3: binary 11, hex: 3
4: binary 100, hex: 4
5: binary 101, hex: 5
6: binary 110, hex: 6
7: binary 111, hex: 7
8: binary 1000, hex: 8
9: binary 1001, hex: 9
10: binary 1010, hex: a
11: binary 1011, hex: b
12: binary 1100, hex: c
13: binary 1101, hex: d
14: binary 1110, hex: e
15: binary 1111, hex: f
16: binary 10000, hex: 10
16進数を表すのに、0x
を先頭につけます。
0xFF
# 255 = 15 * 16 + 15
0xFFFF
# 65536
1 byte = 8 bits
1 kB = 1024 bytes = 2^10
1 MB = 1024 kB = 2^20
1 GB = 1024 MB = 2^30
1 TB = 1024 GB = 2^40
1 PB = 1024 TB = 2^50
1 EB = 1024 PB = 2^60