LoginSignup
63
51

More than 5 years have passed since last update.

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

Last updated at Posted at 2015-08-27

まえがき

再学習用に記事へ起こしました。
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を使うよ!(*´~` *)

まとめ

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

63
51
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
63
51