2013-02-04 32 views
-1

我想以下情況下使用紅寶石(ROR)代碼:Ruby 1.8.7中如何轉到特定的行或條件?

line no: 09 
line no: 10   if(@yyyyy == nil) 
line no: 11   do some operation here 
line no: 12    then goto line no 10 
line no: 13   end 
l 

nextbreak,& goto嘗試過,但沒有什麼工作。

是否有任何關鍵字/聲明來完成我的場景?

+1

使用goto語句被認爲是一個壞的編程習慣 –

回答

6

Ruby默認不支持它,而且,如果您要將代碼提交到http://codereview.stackoverflow.com,我相信他們會幫助您重寫/重構代碼。

您可以使用redo命令來模擬你想要的。 「編程紅寶石」說:

重做從頭重複循環的當前迭代,但不重新評估條件或獲取下一個元素(在迭代器中)。

這就是說,「The Joke Is On Us: How Ruby 1.9 Supports the Goto Statement」將讓您深入瞭解實際使用「轉到」使用Ruby,不過,在這一點上,你的代碼將不會在一個「股票」紅寶石便攜式或使用。

+0

對不起,我忘了加我的紅寶石版本。我需要使用Ruby 1.8.7 – Prince

0
catch :foo do 
    for (aaa in @xxxxx) 
    if(@xxxxx == nil) 
     do some operation here 
     throw :foo 
    end 
    for (bbb in @yyyyy) 
     if(@yyyyy == nil) 
     do some operation here 
     throw :foo 
     end 
    end 
    for (ccc in @zzzzz) 
     if(@zzzzz == nil) 
     do some operation here 
     throw :foo 
     end 
    end 
    end 
end