まえがき
再学習用に記事へ起こしました。
C# - いろいろな方法で1から100までを出力する みたいな感じで、メモ書きです。
1. Array
puts [1, 2, 3, 4, ... , 100]
1~100まで記述したArrayクラスのオブジェクトを表示するという力技!
2. Range を Array に変換
puts [*1..100]
1..100と宣言するだけだとRangeクラスだけど、
[*1..100]と宣言するとRangeクラスをArrayクラスへ変換してくれる。
べんりヾ(。>◡<)ノ"
3. each
(1..100).each{|n| p n }
Rubyistならeachは使いまくってると思う( ‘◟ ‘)✧
ArrayでもRangeでも、要素を1つずつ処理できるヤツです。
個人的にはeachとmapとinjectをよく使う(論点ずれてる
4. times
100.times{|n| p n+1}
繰り返す回数が決まってる場合はtimes使うよね!
名の通り、指定回数繰り返す便利なヤツだよ(๑˃̵ᴗ˂̵)و
5. upto
1.upto(100){|n| p n}
最小と最大が決まってる場合はuptoも有効だね◝(╹▿╹)◜
uptoの逆でdowntoもあるから、降順に処理も楽チン!
6. step
1.step(100){|n| p n }
stepって名前が直感的でいいよね!
n.step(max, m)と宣言すると、nにmaxを超えるまでmを加算してくれるよ☆ゝω・)v
1.step(10, 4)だと1, 5, 9だね。
因みにこいつはmの部分にマイナス値や浮動小数も宣言できるよ!
7. for
for n in 1..100
p n
end
他言語のforやforeachにあたるやつがこれかな?
ただ、Rubyはeachがあるから滅多に使わないね……(٥﹏٥` )
8. loop
n = 0
loop{
n += 1
break if n > 100
p n
}
名前の通りブロック内をloopさせるヤツだね。
forと同じく滅多に使わな……(´・ω・`)
9. while
n = 0
while n < 100 [do]
n += 1
p n
end
終了条件が変化する時などはwhileをよく使うよね!
終了条件が真の間、ずっと繰り返す処理だね。
Rubyの構文がすごいところは、ifやwhileなどが後置できるところだねƪ(•◡•ƪ)
こんな感じで書けるもんね! ⇒ p n+=1 while n < 100
※doはあってもなくてもいいようです。
10. until
n = 0
until n >= 100 [do]
n += 1
p n
end
これはぶっちゃけ、whileの終了条件のnotだから特筆することないんだけど…。
個人的には、whileで書く際に、終了条件が複雑になってしまい、notしたら読みやすくなる場合にuntilを使うよ!(*´~` *)
まとめ
えんじょい るびー ぷろぐらみんぐ!