1

Ruby (RoR) を使用した次のケースのコードが必要です。

 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たが、何も機能していません。

私のシナリオを満たすためのキーワード/ステートメントはありますか?

4

3 に答える 3

7

Ruby はデフォルトではサポートしていません。コードをhttp://codereview.stackoverflow.comに送信する場合、コードの書き直し/リファクタリングに役立つと確信しています。

おそらくredoコマンドを使用して、必要なものをシミュレートできます。「Ruby のプログラミング」には次のように書かれています。

redo は、ループの現在の反復を最初から繰り返しますが、条件を再評価したり、次の要素を (反復子で) フェッチしたりしません。

そうは言っても、「ジョークは私たちにあります:Ruby 1.9がGotoステートメントをどのようにサポートするか」は、Rubyで「goto」を実際に使用する方法についての洞察を提供しますが、その時点では、コードは移植可能でなく、「ストック」で使用できません「ルビー。

于 2013-02-04T05:13:32.817 に答える
1

次の URL を確認してください。

http://patshaughnessy.net/2012/2/29/the-joke-is-on-us-how-ruby-1-9-supports-the-goto-statement

多くのエキスパート プログラマによると、goto ステートメントの使用は悪い習慣です。

于 2013-02-04T05:34:46.303 に答える
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
于 2013-02-04T06:28:43.303 に答える