デイトラDay26 学習記録 「Rubyの条件分岐と繰り返し」
1,IF文とCASE文
・IF文
if文は条件式が満たされるときだけ処理を実行することができます。
number = rand(1..100)
puts number
if number % 3 == 0 && number % 5 == 0
puts "FizzBuzz"
elsif number % 3 == 0
puts "Fizz"
elsif number % 5 == 0
puts "Buzz"
else
puts number
end
・CASE文
if-elsif文で、条件式の変数が全て同じでかつ、等式が使われている場合、
case文を使えます。
以下のコードは、case文でおみくじを作ったものです。
fortune = rand(5)
case fortune
when 0 then
puts "大吉だお"
when 1 then
puts "吉だヒッ!"
when 2 then
puts "小吉どぅふッ"
when 3 then
puts "末吉だっぴ☆"
else
puts "凶よ♡"
end
2,配列、ハッシュ
複数のデータを管理するために、配列・ハッシュを使います。
・配列
配列は、index(添字)でデータを管理します
nums = [1, 2, 10, "tarou", true]
C言語と違って、同じ配列内に異なるデータ型の要素を指定することができます。
・ハッシュ
ハッシュは、キーでデータを管理します。
添字で管理する配列よりも、より何のデータか分かりやすく管理できます。
youkai = {
Orochi: "S",
Kyubi: "S",
Shishikoma: "A",
Babaan: "B",
Zibanyan: "D",
Zimy: "E"
}
puts "#{:Orochi}は#{youkai[:Orochi]}ランクです"
# 出力:OrochiはSランクです
youkai[:Bushinyan] = "S"
puts youkai
#出力:{:Orochi=>"S", :Kyubi=>"S", :Shishikoma=>"A", :Babaan=>"B", :Zibanyan=>"D", :Zimy=>"E", :Bushinyan=>"S"}
3,繰り返し表現
eachメソッド
Rubyにおいてfor文はあまり使われません。
その代わり、配列やハッシュのeachメソッドをよく使います。
以下のコードは、ハッシュにeachメソッドを使ったコードです。
youkai = {
Orochi: "S",
Kyubi: "S",
Shishikoma: "A",
Babaan: "B",
Zibanyan: "D",
Zimy: "E"
}
youkai.each do |key, value|
puts "#{key}は#{value}ランクです"
end
4,スコープ
メソッド内で定義された変数は、メソッド外で使えません
たとえば
def hello
name = "コスメティック田中"
puts "Hello #{name}!"
end
puts name
というコードを実行すると、「nameという変数は定義されていない」というエラーが出ます。
このように、変数が使える範囲をスコープといいます。