Ruby ループ

作成日: 2003-08-04
最終更新日:

Ruby とループ

Ruby のループは、式になっていることが特徴だ。また、 かなりのループがメソッドで書けることも利点となっている。 私は C 言語の経験しかないので、C 言語との対比で説明することにする。

一定回数同じことをする構造

C 言語では、一定同じことをするための構造では、変数を導入しないといけなかった。 たとえば、こんな感じである。

/* ヒラマヤ を 10 回表示させる */
int i;
for (i = 0; i < 10; i++){puts("ヒラマヤ");}

わたしはこの文を見るたび、10 回表示させるのになぜ変数 i が必要なのか、 ずっと疑問に思っていた。その点、Ruby ならば簡単である。

10.times do
print("ヒラマヤ¥n")
end

もっとも、この構文を覚えているわけではなかった。 ruby 言語 繰り返し などのキーワードで検索した結果である。 オブジェクトに使われるメソッドを忘れていたこともあって、 メソッドを調べる方法を知りたいと思った。その方法もやはりメソッドであり、
pp (オブジェクト).methods
で調べられる。

do ... while 構造

C 言語の while (条件文) { ... } に相当する。

最初にブロック内を実行する構造

プログラミング言語では邪道とされる機能ではあるが、 最初に必ず1回はブロック内を実行する構造がある。 C 言語では、do { ... } while (条件文); で表現される。 Ruby には用意されていないと思い込んでいたが、 これは間違いで、begin ... end while (条件文) で表現できる。

ループの途中で抜ける構造

C 言語では、while (条件文) {if (条件文) break;} となる構造である。 これもプログラミング言語では邪道とされる構造であるが、 これがないと無理や無駄が発生する、必要悪ともいえる構造である。

まりんきょ学問所Rubyの浮き輪 > ループ


MARUYAMA Satosi