Edited at

いろいろな方法で1から100までを出力する

More than 3 years have passed since last update.


まえがき

再学習用に記事へ起こしました。

C# - いろいろな方法で1から100までを出力する みたいな感じで、メモ書きです。


1. Array

puts [1, 2, 3, 4, ... , 100]

1100まで記述した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つずつ処理できるヤツです。

個人的にはeachmapinjectをよく使う(論点ずれてる


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)と宣言すると、nmaxを超えるまでmを加算してくれるよ☆ゝω・)v

1.step(10, 4)だと1, 5, 9だね。

因みにこいつはmの部分にマイナス値や浮動小数も宣言できるよ!


7. for

for n in 1..100

p n
end

他言語のforforeachにあたるやつがこれかな?

ただ、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の構文がすごいところは、ifwhileなどが後置できるところだねƪ(•◡•ƪ)

こんな感じで書けるもんね! ⇒ 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を使うよ!(*´~` *)


まとめ

えんじょい るびー ぷろぐらみんぐ!