Odpowiednik „kontynuuj” w Ruby

648

W C i wielu innych językach istnieje continuesłowo kluczowe, które użyte w pętli przeskakuje do następnej iteracji pętli. Czy jest jakiś odpowiednik tego continuesłowa kluczowego w Ruby?

Mark Szymański
źródło
4
Kontynuuj nie „restartuje” pętli, ale przeskakuje do następnej iteracji pętli.
Matt Crinklaw-Vogt
1
@mlaw: Zredagowałem moje pytanie, aby zapobiec przyszłym nieporozumieniom.
Mark Szymanski
7
@dbr po tym duplikat został znaleziony.
Droogans

Odpowiedzi:

933

Tak, to się nazywa next.

for i in 0..5
   if i < 2
     next
   end
   puts "Value of local variable is #{i}"
end

To powoduje, że:

Value of local variable is 2
Value of local variable is 3
Value of local variable is 4
Value of local variable is 5
 => 0..5 
Ian Purton
źródło
13
Tak pamiętam - Ruby szanuje Perl ( next) powyżej C ( continue)
Pułkownik Panic
111

next

sprawdź także, redoktóre ponowne wykonanie bieżącej iteracji.

Nick Moore
źródło
39
... ponieważ rubin jest taki rad.
Matt Walters
1
Ruby wiele pożyczyła od Perla, w tym jego redorozkaz (lub jego esencję, zresztą). Aby interpretować Ruby, wyszukaj „ponów” na tej stronie .
MarkDBlackwell
42

Wewnątrz pętli i na-iterator metod jak eachi kluczowe w Ruby będzie miał wpływ skoków do następnej iteracji pętli (tak samo jakmapnextcontinue w C).

Jednak tak naprawdę to po prostu wraca z bieżącego bloku. Możesz więc używać go z dowolną metodą, która zajmuje blok - nawet jeśli nie ma to nic wspólnego z iteracją.

sepp2k
źródło
a także miłe oświadczenie powtórne
Sigurd
9

Myślę, że nazywa się to dalej .

idursun
źródło
1

Użyj następnej, pominie ten warunek, a reszta kodu będzie działać. Poniżej przedstawiłem pełny skrypt i out put

class TestBreak
  puts " Enter the nmber"
  no= gets.to_i
  for i in 1..no
    if(i==5)
      next
    else 
      puts i
    end
  end
end

obj=TestBreak.new()

Wyjście: wprowadź nmber 10

1 2 3 4 6 7 8 9 10

Rakesh Kumar
źródło