LoginSignup
26
24

More than 5 years have passed since last update.

Rubyを勉強して覚えた事を簡単にまとめてみた

Posted at

Rubyをちょっと勉強しているんだけど覚えたことをなかなかアウトプットしきれていないので
現時点で把握している内容を簡単にまとめてみました。

何か文字列を表示する。

plac.rb
printf "Hello Ruby¥n"
print "Hello Ruby¥n"
puts "Hello Ruby"
p "Hello Ruby"

実行してみるとこんな感じ。

$ ruby plac.rb
Hello Ruby
Hello Ruby
Hello Ruby
"Hello Ruby"

pメソッドに関してはオブジェクトの内容を表示しています。

ループについて

1から10まで表示する。
1.While

plac.rb
i=1
while i<=10
  puts i
  i += 1
end

2.until

plac.rb
i=1
until i>10
  puts i
  i += 1
end

3.for文①

plac.rb
for i in 1..10
  puts i
end

4.for文②

plac.rb
ar = [1,2,3,4,5,6,7,8,9,10]
for i in ar
  puts i
end

1〜4の結果は全て同じ。
これを出力すると

$ ruby plac.rb
1
2
3
4
5
6
7
8
9
10

というかある人からのアドバイスによるとRubyではfor文は使わないらしい...(´・ω・`)
じゃあfor文を使わずにどう回せばいいのさ('A`)

そんなときはeachとかtimesとかuptoとかdowntoを使えばいいよ

はいまずeach文

plac.rb
(1..10).each{|num|
  puts num
}

次はtimes

plac.rb
10.times{|num|
  puts num+1
}

表示結果は0からnum-1なので+1しています。

upto

plac.rb
1.upto(10){|num|
  puts num
}

downtoは逆に10から1ずつ減らして表示する

plac.rb
10.downto(1){|num|
  puts num
}

うん...確かにfor文なんかより簡単で読みやすいですはい
そしてもっと簡単に書く方法があり...

表示するだけならオブジェクトとして出力してもいいんでしょ?

plac.rb
p (1..10).to_a

結果

$ ruby prac.rb
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

1行で表示できちゃったよ
す...素晴らしい:(;゙゚'ω゚'):
これがいわゆるショートコーディングと言われるやつですか・x・

26
24
3

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
26
24