Ruby-루프
Ruby의 루프는 동일한 코드 블록을 지정된 횟수만큼 실행하는 데 사용됩니다. 이 장에서는 Ruby에서 지원하는 모든 루프 문을 자세히 설명합니다.
루비 while 문
통사론
while conditional [do]
code
end
조건 이 참인 동안 코드 를 실행 합니다. 동안 루프의 조건은 분리되어 코드 예약어 할, 줄 바꿈, 백 슬래시 \, 또는 세미콜론;.
예
#!/usr/bin/ruby
$i = 0
$num = 5
while $i < $num do
puts("Inside the loop i = #$i" )
$i +=1
end
이것은 다음 결과를 생성합니다-
Inside the loop i = 0
Inside the loop i = 1
Inside the loop i = 2
Inside the loop i = 3
Inside the loop i = 4
수정 자 동안 루비
통사론
code while condition
OR
begin
code
end while conditional
조건 이 참인 동안 코드 를 실행 합니다.
while 수정자가 rescue 또는 ensure 절이 없는 begin 문 뒤에 오는 경우 조건이 평가되기 전에 코드 가 한 번 실행됩니다.
예
#!/usr/bin/ruby
$i = 0
$num = 5
begin
puts("Inside the loop i = #$i" )
$i +=1
end while $i < $num
이것은 다음 결과를 생성합니다-
Inside the loop i = 0
Inside the loop i = 1
Inside the loop i = 2
Inside the loop i = 3
Inside the loop i = 4
Ruby until 문
until conditional [do]
code
end
조건 이 거짓 인 동안 코드 를 실행 합니다 . 까지 문의 조건은 분리되어 코드 예약어에 의해 수행 , 줄 바꿈, 또는 세미콜론.
예
#!/usr/bin/ruby
$i = 0
$num = 5
until $i > $num do
puts("Inside the loop i = #$i" )
$i +=1;
end
이것은 다음 결과를 생성합니다-
Inside the loop i = 0
Inside the loop i = 1
Inside the loop i = 2
Inside the loop i = 3
Inside the loop i = 4
Inside the loop i = 5
수정 자까지 루비
통사론
code until conditional
OR
begin
code
end until conditional
조건 이 거짓 인 동안 코드 를 실행 합니다 .
until 수정자가 rescue 또는 ensure 절 없이 begin 문 뒤에 오는 경우 조건 이 평가 되기 전에 코드 가 한 번 실행 됩니다.
예
#!/usr/bin/ruby
$i = 0
$num = 5
begin
puts("Inside the loop i = #$i" )
$i +=1;
end until $i > $num
이것은 다음 결과를 생성합니다-
Inside the loop i = 0
Inside the loop i = 1
Inside the loop i = 2
Inside the loop i = 3
Inside the loop i = 4
Inside the loop i = 5
Ruby for Statement
통사론
for variable [, variable ...] in expression [do]
code
end
expression의 각 요소에 대해 한 번씩 코드를 실행 합니다 .
예
#!/usr/bin/ruby
for i in 0..5
puts "Value of local variable is #{i}"
end
여기서는 0..5 범위를 정의했습니다. 위한 문 난 0..5의 수는 전 (5 포함) 0 내지 5의 범위의 값을 취할. 이것은 다음 결과를 생성합니다-
Value of local variable is 0
Value of local variable is 1
Value of local variable is 2
Value of local variable is 3
Value of local variable is 4
Value of local variable is 5
A는 중 ...에서 루프를 거의 정확하게 다음과 동일합니다 -
(expression).each do |variable[, variable...]| code end
for 루프는 지역 변수에 대한 새 범위를 생성하지 않는다는 점을 제외하고 . 에 대한 루프의 표현이 분리되어 코드 예약어 할, 줄 바꿈, 또는 세미콜론.
예
#!/usr/bin/ruby
(0..5).each do |i|
puts "Value of local variable is #{i}"
end
이것은 다음 결과를 생성합니다-
Value of local variable is 0
Value of local variable is 1
Value of local variable is 2
Value of local variable is 3
Value of local variable is 4
Value of local variable is 5
Ruby break 문
통사론
break
대부분의 내부 루프를 종료합니다. 블록 내에서 호출 된 경우 연관된 블록이있는 메서드를 종료합니다 (메소드가 nil을 반환 함).
예
#!/usr/bin/ruby
for i in 0..5
if i > 2 then
break
end
puts "Value of local variable is #{i}"
end
이것은 다음 결과를 생성합니다-
Value of local variable is 0
Value of local variable is 1
Value of local variable is 2
루비 다음 진술
통사론
next
가장 내부 루프의 다음 반복으로 이동합니다. 블록 내에서 호출되면 블록 실행을 종료합니다 ( yield 또는 call이 nil을 반환 함).
예
#!/usr/bin/ruby
for i in 0..5
if i < 2 then
next
end
puts "Value of local variable is #{i}"
end
이것은 다음 결과를 생성합니다-
Value of local variable is 2
Value of local variable is 3
Value of local variable is 4
Value of local variable is 5
Ruby redo 선언문
통사론
redo
루프 조건을 확인하지 않고 가장 내부 루프의이 반복을 다시 시작합니다. 블록 내에서 호출 되면 yield 또는 call을 다시 시작합니다 .
예
#!/usr/bin/ruby
for i in 0..5
if i < 2 then
puts "Value of local variable is #{i}"
redo
end
end
이것은 다음 결과를 생성하고 무한 루프로 이동합니다.
Value of local variable is 0
Value of local variable is 0
............................
Ruby 재시도 문
통사론
retry
경우 재 시도 의 처음부터 표정, 다시 시작 시작의 구조 절에 나타납니다 몸을 시작합니다.
begin
do_something # exception raised
rescue
# handles error
retry # restart from beginning
end
반복기, 블록 또는 for 표현식 의 본문에 재 시도가 나타나면 반복기 호출의 호출을 다시 시작합니다. 반복자에 대한 인수가 재평가됩니다.
for i in 1..5
retry if some_condition # restart from i == 1
end
예
#!/usr/bin/ruby
for i in 0..5
retry if i > 2
puts "Value of local variable is #{i}"
end
이것은 다음 결과를 생성하고 무한 루프로 이동합니다.
Value of local variable is 1
Value of local variable is 2
Value of local variable is 1
Value of local variable is 2
Value of local variable is 1
Value of local variable is 2
............................