Ctrl
制御構造
繰り返しや、条件判断といった言語の持つ制御構造についてのメモ
while
file:test_while.rb
counter = 1
while counter <= 3
puts("counter:#{counter}")
counter += 1
end
実行例
$ ruby test_while.rb
counter:1
counter:2
counter:3
for
file:test_for.rb
teams = ["alpha", "bravo", "charlie"]
for team in teams
puts("チーム名: #{team}")
end
実行例
$ ruby test_for.rb
チーム名: alpha
チーム名: bravo
チーム名: charlie
times #method
file:test_times.rb
counter = 1
3.times do
puts("counter:#{counter}")
counter += 1
end
実行例
$ ruby test_times.rb
counter:1
counter:2
counter:3
loop #method
file:test_loop.rb
counter = 1
loop do
puts("counter:#{counter}")
counter += 1
if(counter == 4)
break;
end
end
実行例
$ ruby test_loop.rb
counter:1
counter:2
counter:3
each #method iterator
file: test_each.rb
nums = ["one", "two", "three", "four"]
nums.each do |num|
puts(num)
end
実行例
$ ruby test_each.rb
one
two
three
four
if then else
file:test_ifthenelse.rb
str1 = ARGV[0]
str2 = ARGV[1]
if(str1 == str2) then
puts("str1(#{str1}) eq str2(#{str2})")
else
puts("str1(#{str1}) neq str2(#{str2})")
end
実行例
$ ruby test_ifthenelse.rb Ruby00 Ruby00
str1(Ruby00) eq str2(Ruby00)
$ ruby test_ifthenelse.rb Ruby00 Ruby01
str1(Ruby00) neq str2(Ruby01)
case
file:test_case.rb
testcase = ["alpha", "bravo", "charlie", "delta"]
testcase.each do |val|
case val
when "alpha"
puts("Aチーム:#{val}です")
when "bravo"
puts("Bチーム:#{val}です")
when "charlie"
puts("Cチーム:#{val}です")
else
puts("不明なチーム:#{val}です")
end
end
実行例
$ ruby testcase.rb
Aチーム:alphaです
Bチーム:bravoです
Cチーム:charlieです
不明なチーム:deltaです
comments
コメントの記述方法
c言語のような 文の途中だけコメントする/* */はサポートしていません。
# 行頭から文末までをコメントとみなします。
puts("Ruby Comments") # これ以降文末までをコメントとみなします。
=begin
範囲指定のコメントの例
puts("Ruby Comments")
# hogehoge
=end
文字列
文字列の表示例
file:disp_strings.rb
str = "TESTSTRING"
print("Ruby 文字列表示例: #{str}\n")
print('Ruby 文字列表示例: #{str}\n')
print("\n")
実行例
ダブルコーテーション"で囲まれた文字列は
変数やエスケープシーケンスコードは通常通り解釈処理されます。
シングルコーテーション'で囲まれた文字列は
上記の解釈処理が行われず、記述内容そのものが表示されます。
$ ruby disp_strings.rb
Ruby 文字列表示例: TESTSTRING
Ruby 文字列表示例: #{str}\n
Hash
file: test_hash.rb
nums = {:a => "alpha", :b => "bravo", :c => "charlie"}
nums.each do |key, value|
puts(":#{key} #{value}"
end
puts(":a #{nums[:a]")
実行例
$ ruby test_hash.rb
:a alpha
:b bravo
:c charlie
:a alpha