Rubyで複数の行を1行で記述する

パソコン

IF文の場合

if 1 < 5
 p "5の方が大きいです"
end

上下同じ意味になります。

 p "5の方が大きいです" if 1 < 5

IF文の場合(三項定理)

if score == 60
 puts "60以上です"
else
 puts "60以下です"
end

上下同じ意味になります。

puts score==60?"60以上です":"60以下です"

繰り返し処理の場合(配列の場合)

scores=[70,67,85]
scores.each do |score|
  puts score
end

上下同じ意味になります。

scores.each{|score| puts score }

繰り返し処理の場合(連想配列の場合)

scores={"math":70,"eng":67,"program":85} 
または、
scores={math:70,eng:67,program:85} 

通常の書き方、

scores.each do |key,value|
  puts "#{key}は#{value}点です"
end

1行で書くと、

scores.each{|key,value| puts "#{key}は#{value}点です" }

<結果>
mathは70点です
engは67点です
programは85点です

繰り返し処理の場合(timesを利用する場合)

5.times do |i|
  p i
end

<結果>
0
1
2
3
4

繰り返し処理の場合(to_aを利用する場合)

(1..5).to_a.each do |i|
  p i
end

<結果>
1
2
3
4
5

コメント

タイトルとURLをコピーしました