2016-03-01 7 views
5

中括弧を使用してルビのループを実行している間、簡単なライナーを作成しようとしていました。私は、次の形式で成功であった。中括弧を使用してRubyでループを実行する方法

while x < 5 do x+=1 end 

これは1つのライナーで終了を行う使用してのではないファン1つのライナーが、イムとしては十分です。

while x < 5 { x += 1 } 

はこれが行うことができます:私はこれに似た何かをしたいですか?質問が巻き毛と whileを使用する方法」である場合

5.times { |i| puts i } 
+1

私はこの質問の手段では単純化されていると仮定していますが、私はkeyw 'while'、' for'などのようなordはブロック構文を受け入れます。 'Enumerable'メソッドを使って'(x ... 5).each {x + = 1} 'のようにすると、同じ結果が得られます。 – engineersmnky

答えて

11

中かっこ?それはできますか?」と答えると、いいえ、できません。

代わりに、あなたは...終わり、そして中括弧なしなしながらを使用することができます。

x = 0 
(x+=1; p x) while x<5 

それともあなたが同じことを達成するために、しばらくなし中括弧を使用することができます:

+1

それは本当にうまく読みます。 'x + = 1〜x == 5'は別のオプションです。私は「while」を好むが、「until」は言及に値する。 –

1

x = 0 
while x < 5 do 
    puts x 
    x += 1 
end 

あなたがこれを書くことができ、この1についてどう

4

:この代わりの

x = 0 
x += 1 while x < 5 
x 
#=> 5 
+0

しかし、これらの2つは異なっています。異なるスコープルールを扱うからです。 'whileループ'の内部で作成された変数は、外側のスコープから見えます。同じことは、 'each'ブロックには適用されません。 – yeyo

関連する問題