「制御文」(2005/12/08 (木) 11:13:07) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
*if文
式が真(0,nil,false以外の値)だったら(A)の部分を実行。
if 式 [then]
.... <---(A)
end
式が真(0,nil,false以外の値)だったら(A)の部分を実行、それ以外は(B)を実行。
if 式 [then]
.... <---(A)
elsif
.... <---(B)
end
Cなどの場合
if (式){
}
という感じに()で式を囲うけどRubyは必要なし。
また複数の文の場合ブロックで囲うけれど、(Cなら{})Rubyの場合doとかbeginとか{ブロックの開始をつけない。
thenも無くていいみたいだ。
if 式
end
ま、確かに少し記述がらくだけどviで%とか押すクセが付いてるのでちょっと困惑する私…
----
*while文
式が真の間(A)の部分を繰り返し実行する。
while 式
.... <----(A)
end
*for文
C等のforよりUnixのシェルスクリプトのforeachに近い感覚。
for i in 0...10 do
puts i
end
とか
array = ['A', 'B', 'C']
for i in array do
puts i
end
みたいな使い方。コンテナっぽいのから要素を一つづつ取り出して実行。
ちなみに...のかわりに..を使うと10も出力される。点々の数が多いほうが範囲が狭いってのもなんか直感的じゃあないなあと思ってしまうんだが。
for i in 0..10 do
puts i
end
どうもinの後におくオブジェクトにeachメソッドが実装されていればforに使える模様。っていうか単に
aObject.each do |i|
end
と
for i in aObject do
end
はほぼ同じと考えていいみたい。
----
制御文ではないけれどループの処理をするときに以下のようなやり方もRubyでは良くつかう。ここまで文法でイテレータをサポートしてくれているとイテレータもありがたみを感じやすい。(IteraterではなくてVisiterなのか)
array.each do |i|
puts i
end
10.times do |i|
puts i
end
*if文
式が真(0,nil,false以外の値)だったら(A)の部分を実行。
if 式 [then]
.... <---(A)
end
式が真(0,nil,false以外の値)だったら(A)の部分を実行、それ以外は(B)を実行。
if 式 [then]
.... <---(A)
elsif
.... <---(B)
end
Cなどの場合
if (式){
}
という感じに()で式を囲うけどRubyは必要なし。
また複数の文の場合ブロックで囲うけれど、(Cなら{})Rubyの場合doとかbeginとか{ブロックの開始をつけない。
thenも無くていいみたいだ。
if 式
end
thenをつける必要があるのは一行に記述するとき
if a == 1 then puts "a is one" end
ま、確かに少し記述がらくだけどviで%とか押すクセが付いてるのでちょっと困惑する私…
----
*while文
式が真の間(A)の部分を繰り返し実行する。
while 式
.... <----(A)
end
*for文
C等のforよりUnixのシェルスクリプトのforeachに近い感覚。
for i in 0...10 do
puts i
end
とか
array = ['A', 'B', 'C']
for i in array do
puts i
end
みたいな使い方。コンテナっぽいのから要素を一つづつ取り出して実行。
ちなみに...のかわりに..を使うと10も出力される。点々の数が多いほうが範囲が狭いってのもなんか直感的じゃあないなあと思ってしまうんだが。
for i in 0..10 do
puts i
end
どうもinの後におくオブジェクトにeachメソッドが実装されていればforに使える模様。っていうか単に
aObject.each do |i|
end
と
for i in aObject do
end
はほぼ同じと考えていいみたい。
----
制御文ではないけれどループの処理をするときに以下のようなやり方もRubyでは良くつかう。ここまで文法でイテレータをサポートしてくれているとイテレータもありがたみを感じやすい。(IteraterではなくてVisiterなのか)
array.each do |i|
puts i
end
10.times do |i|
puts i
end
表示オプション
横に並べて表示:
変化行の前後のみ表示: