일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- jsp
- rails
- 일본어
- Flutter
- CSS
- 건담베이스
- Python
- ruby
- vscode
- 비즈니스일본어
- 単語
- rails7
- DART
- 반다이몰
- 日本語
- メソッド
- 자바
- C로 시작하는 컴퓨터 프로그래밍4판
- javascript
- java
- Web
- 디지몬
- 一日一つメソッド
- springboot
- 연습문제
- nico
- html
- 인프런
- 건담
- Spring
- Today
- Total
AR삽질러
Ruby 戻り返し処理 본문
Ruby 戻り返し処理
繰り返し処理を行いたい特に使う、次のメソッドを学習。
each
for
times
while
upto, downto
step
loop, braeak, next
1. 繰り返し処理 each
配列やハッシュ.each do |変数|
# 繰り返し実行したい処理。
end
- 配列の要素を最初から最後まで順番に取り出しながら、処理を実行する。
例題1 each
1) 配列numbersを作成 (1, 2, 3, 4, 5)
2) 配列の要素を一つづつ取り出して出力
def number
numbers = [1, 2, 3, 4, 5]
numbers.each do |number|
puts number
end
numbers.each {|number|
puts number
}
numbers.each {|number| puts number }
end
number
例題2 each
1) 配列colorsを作成 red, green, blue
2) 配列の要素を一つづつ取り出して出力
def color
colors = ['red', 'green', 'blue']
colors.each do |color|
puts color
end
end
color
2. 繰り返し処理 for
forループはeachと同様の方法で動作しますが、ルビーでは一般的にeachの方が好まれます。
for 変数 in 配列やハッシュ do
# 繰り返し実行したい処理。
end
例題1 for
1) 配列numbersを作成 (1, 2, 3, 4, 5)
2) 配列の要素を一つづつ取り出して出力
def number_for
numbers = [1,2,3,4,5]
for number in numbers do
puts number
end
end
number_for
forは原則使わない
慣習としてeachでもforでも書ける時は、eachを用いる。
"for"は、どうしても使わなければいけない明確な理由が明言できる人以外は、使ってはいけません。: The Ruby Style Guideより。
1. 繰り返し処理 ( ハッシュの場合)
例題 each (ハッシュ利用)
1. ハッシュで生徒のごとの点数scoresを用意
- { luke: 100, jack: 90, robert: 70 }
2. 配列の要素を一つづつ取り出して出力
def socres_each
scores = { luke: 100, jack: 90, robert: 70 }
scores.each do |k, v|
# puts "Value : " + v.to_s
if v >= 80
puts "#{k} : #{v}"
end
end
end
socres_each
3. 繰り返し処理 times
- 配列を使わずに、単純にn回処理を繰り返してい場合は、Integerクラスのtimesメソッドを使うと便利
- timesメソッドは、与えられた回数だけブロックを繰り返し実行します。
繰り返し回数.times do |i|
# 繰り返し実行したい処理。
end
|i|は省略可能
例題
timesを使って、5回 ’Hello!' と出力する。
def tiems_roof
5.times do |i|
puts "#{i} : Hello!"
end
end
tiems_roof
4. 繰り返し処理 while
while 条件式 do
# 繰り返し実行したい処理。
end
- whileループは、与えられた条件が真の間にコードブロックを繰り返し実行します。
例題 while
- 数字0から9まで、10個出力するプログラムをwhileを使って書いてみましょう。
def while_example
i = 0
while i < 10 do
puts i
i += 1
end
end
while_example
5. 繰り返し処理 upto, downto
uptoとdowntoは数字の範囲のために使用されます。 uptoは開始値から終了値まで増加し、downtoは開始値から終了値まで減少しながらブロックを実行します。
upto
- nからmまで数値を1づつ増やしながら何かしらの処理を実行したい場合に使う
構文
開始直.upto( 終了値 ) { 繰り返し実行したい処理 }
例題1
- 数値を10から14まで1づつ増やしながら、値を出力
- uptoを使用する
def upto_example
10.upto(14) { |n| puts n }
end
upto_example
downto
- nからmまで数値を1づつ減らしながら何かしらの処理を実行したい場合に使う
構文
開始直.downto( 終了値 ) { 繰り返し実行したい処理 }
例題2
- 数値を10から14まで1づつ減らしながら、値を出力
- downtoを使用する
def downto_example
14.downto(10) { |n| puts n }
end
downto_example
6. 繰り返し処理 step
- nからm までxずつ値を増やしながら、何かしらの処理を実行したい時に利用。1, 3, 5, 7, 9
-ステップメソッドは、開始値から終了値まで指定された間隔だけ増加または減少しながらブロックを実行します。
構文step
開始式.step(上限値、一度に増減する大きさ ) {}
例題1
- 数値を1から10まで2ずつ増やしながら出力する。
def step_example
1.step(10, 2) { |n| puts n }
end
step_example
例題2
- 数値を10から1まで2ずつ減らしながら出力する。
def step_example
1.step(10, 2) { |n| puts n }
10.step(1, -2) { |n| puts n }
end
step_example
7. 繰り返し処理 loop, braeak, next
1) 繰り返し処理 loop
- あえて無限ループを作りたい時に利用する。
- loopは無限ループを生成します。 一般的にbreakやnextと一緒に使用してループを制御します。
- break:ループを完全に終了します。
- next:ループの現在の反復をスキップし、次の反復に進みます。
構文 loop
loop do
# 繰り返し実行したい処理
end
例題1
- loopメソッドを使って、変数の値を0から1ずつ増やしながら出力。
def loop_example
i = 0
loop do
puts i
i += 1
end
end
loop_example
例題2
- whileで書き換える
def loop_example
i = 0
while true
puts i
i += 1
end
end
loop_example
例題3
- 0から 9まで出力するプログラムをloopを使って、書く。
def loop_example
i = 0
loop do
puts i
i += 1
break if i > 9
end
end
loop_example
例題3
- 配列 [1, 2, 3, 4, 5 ]の値が、奇数の場合のみ、画面に出力する処理。
- eachとnextを利用
def loop_example
numbers = [1, 2, 3, 4, 5]
numbers.each do |n|
# next if n % 2 == 0
next if n.even?
puts n
end
end
loop_example
例題4
- 配列 [1, 2, 3, 4, 5 ]に入った数値が、偶数の場合のみ、画面に出力する処理。
- eachとnextを利用
def loop_example
numbers = [1, 2, 3, 4, 5]
numbers.each do |n|
next if n % 2 != 0
puts n
end
end
loop_example
def loop_example
numbers = [1, 2, 3, 4, 5]
numbers.each do |n|
# next if n % 2 != 0
next if n.odd?
puts n
end
end
loop_example
問題 1-1
- Eachを使って配列要素を出力する
- 配列[1, 2, 3, 4, 5] の各要素を出力するプログラムを作成
def example
arr = [1, 2, 3, 4, 5]
arr.each do | number |
puts number
end
end
example
問題 1-2
- Timesを使用して文字列を繰り返し出力する
- 文字列"Hello Ruby!"を5回出力するプログラムを作成してください。
def example
n = 5
n.times do
puts "Hello!"
end
end
example
問題 2-1
Whileを使用して条件を満たすまで数字を足す
0から始めて数字を1つずつ加えて、合計が100を超えると止まるプログラムを作成してください。
def example
i = 0
sum = 0
while sum <= 100
i += 1
sum += i
end
puts "最後の i : #{i}"
puts "sum : #{sum}"
end
example
問題 2-2
Uptoを使用して九 九 を出力する
2 段を出力するプログラムを作成してください。
def example
gugu = 1
gugu.upto(9) do |i|
puts "2 * #{i} = #{2 * i}"
end
end
example
問題 3-1
Stepを使用して偶数のみ出力する
1 から 100 までの数字の中から偶数のみを出力するプログラムを作成してください。
def example
i = 2
i.step(100, 2) do |number|
if number.even?
puts number
else
puts number
end
end
end
example
'Ruby > Ruby-日本語' 카테고리의 다른 글
Ruby Class例題 - 銀行口座管理システム (1) | 2023.12.19 |
---|---|
Ruby オリジナルのクラスを作成する (0) | 2023.12.18 |
Ruby ハッシュ (0) | 2023.12.18 |
Ruby 配列 (2) | 2023.12.18 |
Ruby 出力puts, print, p, pp (0) | 2023.12.16 |