1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #-*- coding: utf-8 -*- NAME = ["아이언맨", "헐크", "토르", "스파이더맨"] NAME.each do |ava| puts ava end =begin 아이언맨 헐크 토르 스파이더맨 =end for data in NAME puts data end =begin 아이언맨 헐크 토르 스파이더맨 =end | cs |
========================================================================================================================
루비에서는 반복문을 사용할 때 for x in a..b 이런 구조보다 x.each do |y| 의 구조를 더 선호해서 사용한다고 한다. 물론 위에서 처럼 결과는 동일하다.
in x..y 와 in x...y 의 차이점 ---------------------------------------------------------
in x..y 의 범위(range)는 x 부터 y 를 모두 포함한다. 그러나 in x...y 의 범위는 x 부터 y-1 까지를 포함한다.
$다른 언어 같은 경우
python : 1 부터 10까지의 범위를 주기 위해서는 for i in range(1, 11): 이라고 코딩한다.
c언어 : 1 부터 10까지의 범위를 주기 위해서는 for (i=1; i<=10; i++)
go언어 : 1 부터 10까지의 범위를 주기 위해서는 for i:=1; i<=10; i++ { ... }
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 32 33 34 | puts " ==> in 1..10 <==" for i in 1..10 puts "#{i}" end =begin ==> in 1..10 <== 1 2 3 4 5 6 7 8 9 10 =end puts " ==> in 1...10 <==" for i in 1...10 puts "#{i}" end =begin ==> in 1...10 <== 1 2 3 4 5 6 7 8 9 =end | cs |
[FOR 문] =====================================================
구구단을 만들어 보았다.
for i in 2..9
for j in 1..9
printf("%2d x %2d = %2d ", i, j, i*j)
end
print("\n")
end

[ 결과 ]
[while 문] =====================================================
num = 0
while TRUE
puts "#{num}"
num += 1
if num == 10
break
end
end