Each 반복자
Coddy Ruby 여정의 기초 섹션에 포함된 레슨 — 88개 중 65번째.
Ruby는 for 또는 while 루프를 사용하는 것보다 배열을 반복하는 더 우아한 방법을 제공합니다. each 반복자는 컬렉션의 모든 요소를 처리하는 권장되는 Ruby 방식입니다.
기본 구문은 다음과 같습니다:
fruits = ["apple", "banana", "cherry"]
fruits.each do |fruit|
puts fruit
end이 코드는 각 과일을 별도의 줄에 출력합니다. 파이프 기호 사이의 변수(|fruit|)는 블록 변수라고 불립니다. 반복자(iterator)가 배열을 통과할 때 각 요소를 일시적으로 저장합니다.
한 줄 블록의 경우, do...end 대신 중괄호를 사용할 수 있습니다:
numbers = [1, 2, 3]
numbers.each { |n| puts n * 2 }each 메서드는 각 요소에 대해 모든 작업을 수행할 수 있기 때문에 강력합니다. 다음은 누적 합계를 계산하는 예제입니다:
prices = [10, 25, 15]
total = 0
prices.each do |price|
total += price
end
puts total # 출력: 50for 루프와 달리, each의 블록 변수는 블록 내에 유지되어 코드를 더 깔끔하게 만들고 예상치 못한 동작이 발생할 가능성을 줄여줍니다.
챌린지
쉬움쉼표로 구분된 정수들이 포함된 한 줄의 입력을 읽습니다 (예: 4,7,2,9,5).
입력을 정수 배열로 분할한 다음, each 반복자를 사용하여 다음을 수행하세요:
- 각 숫자에 3을 곱한 값을 각각 별도의 줄에 출력합니다.
- 모든 숫자의 합계를 계산하고 반복문이 끝난 후 출력합니다.
배열을 반복하면서 합계를 누적하기 위해 반복문 이전에 0으로 초기화된 변수를 사용하세요.
예를 들어, 입력이 4,7,2,9,5인 경우 출력은 다음과 같아야 합니다:
12
21
6
27
15
Sum: 27입력이 10,20,30인 경우 출력은 다음과 같아야 합니다:
30
60
90
Sum: 60입력이 1,2,3,4인 경우 출력은 다음과 같아야 합니다:
3
6
9
12
Sum: 10입력이 5인 경우 출력은 다음과 같아야 합니다:
15
Sum: 5치트 시트
each 반복자는 배열을 루프하는 선호되는 Ruby 방식입니다:
fruits = ["apple", "banana", "cherry"]
fruits.each do |fruit|
puts fruit
end파이프 사이의 변수(|fruit|)는 각 요소를 일시적으로 보유하는 블록 변수입니다.
단일 행 블록의 경우 중괄호를 사용하세요:
numbers = [1, 2, 3]
numbers.each { |n| puts n * 2 }각 요소에 대해 합계를 계산하는 것과 같은 작업을 수행할 수 있습니다:
prices = [10, 25, 15]
total = 0
prices.each do |price|
total += price
end
puts total # 출력: 50직접 해보기
# 쉼표로 구분된 정수 읽기
input = gets.chomp
# 입력을 정수 배열로 분할
numbers = input.split(",").map(&:to_i)
# 합계 변수 초기화
sum = 0
# TODO: 아래에 코드를 작성하세요
# each 반복자를 사용하여 다음을 수행하세요:
# 1. 각 숫자에 3을 곱하여 출력
# 2. 각 숫자를 sum 변수에 더하기
# 최종 합계 출력
puts "Sum: #{sum}"이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.