breakはもっとも内側のループを脱出します。ループとは
- while
- until
- for
- イテレータ
ほっほー。試しに下記を実行するとfirstが出力された。つまり、2つ目からのwhenはifではなくelse ifなんですね。
- a = 1
- case a
- when 1
- p "first"
- when 1
- p "second" # never come here
- else
- p "else" # never come here
- end
2011/05/11 追記:
動物本を見るとelse ifという表現はあまりよろしくない気がしました。
- プログラミング言語 Rubyより
他の言語のswitch文は、単純に適切なcaseラベルの先頭に制御を移すだけである。そこから制御は継続され、他のcaseラベルに「落下」することもある。この落下の動作により、複数のcase節が同じコードブロックを参照できるのである。Rubyでは、個々のwhen節にカンマ区切りの複数の指揮を並べられるようにして、同じ目的を達している。Rubyのcase文は落下しない。
- プログラミング言語 Ruby 第2版 131ページ caseとswitch
- def hasValue?(x) # hasValue?という名前のメソッドを定義する
- case x # xの値に基づく多方向条件分岐
- when nil, [], "", 0 # nil===x || []===x || ""===x || 0===xなら
- false # メソッドの戻り値はfalse
- else # そうでなければ
- true # メソッドの戻り値はtrue
- end
- end
0 件のコメント:
コメントを投稿