Ruby'deki “devam” eşdeğeri


648

C ve diğer birçok dilde, continuebir döngünün içinde kullanıldığında, döngünün bir sonraki yinelemesine atlayan bir anahtar kelime vardır. continueRuby'de bu anahtar kelimenin eşdeğeri var mı ?


4
continue, döngüleri "yeniden başlatmaz", ancak döngünün bir sonraki yinelemesine atlar.
Matt Crinklaw-Vogt

1
@mlaw: Gelecekte karışıklığı önlemek için sorumu buna göre düzenledim.
Mark Szymanski

7
@ dbr bulduğunuz kopyadan sonra sordu.
Droogans

Yanıtlar:


933

Evet, denir next.

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

Bu, aşağıdakileri çıkarır:

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 

13
İşte bu şekilde hatırlıyorum - Ruby, nextC ( continue) üzerindeki Perl ( ) 'e saygı duyuyor
Albay Panik

111

next

ayrıca, mevcut yinelemenin redohangisini yeniden yaptığına bakın .


39
... çünkü yakut böyle rad.
matt walters

1
Ruby, Perl'in redoemri (ya da zaten özü) dahil olmak üzere Perl'den çok ödünç aldı . Ruby'nin yorumu için bu sayfada "yeniden yap" ifadesini arayın .
MarkDBlackwell


42

İç ve bu gibi yineleyici yöntemler-döngüler için eachve Ruby anahtar kelime döngü (aynı bir sonraki iterasyon için atlama etkisine sahiptir C).mapnextcontinue

Ancak gerçekte yaptığı şey sadece mevcut bloktan geri dönmek. Böylece, blok alan herhangi bir yöntemle kullanabilirsiniz - yineleme ile ilgisi olmasa bile.


yanı sıra güzel yineleme bildirimi
Sigurd



1

Sonra kullanın, bu koşulu atlayacak ve kodun geri kalanı çalışacaktır. Aşağıda tam betiği ve dışarı koymak verdik

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()

Çıktı: nmber 10'u girin

1 2 3 4 6 7 8 9 10

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.