Rubyでは全てのデータはオブジェクト(インスタンス)である。
そのため、個々のデータはそれぞれの性質を記述したクラスが
決まっている。あるデータのクラスを知りたい場合には、メソッド
「class」を用いるとクラスが返り値となる。例えば、整数
「1」のクラスを確かめるには、
1.class
と記述する。(この場合、「Fixnum」という整数を表すクラスの一種
が返り値となる。)
様々な定数のクラスを調べてみよ。もし、何らかの計算結果の値のクラスを
確かめたい場合は
(1 + 2).class
と括弧をつけると良い。例えば、次のような巾乗演算「**」の
結果を見てみよ。
(2 ** 8).class
(2 ** 128).class
求めたクラスがどのようなものかは書籍やRubyのリファレンスマニュアルを
参照せよ。
これまでは1行だけで単純な演算をするプログラムであったが、より複雑な処理を するためには複数行からなるプログラムを記述する。 その場合、irbでキーボードから逐一入力するよりはテキストエディタ を用いてプログラムを入力・編集し、ファイルに格納する。そのファイルの拡張子 は「.rb」とすること。
複数行からなるプログラムは基本的には第1行目から順に実行される(順次)。 その他に命令を書くことで、繰返し(反復)や条件に基づいた分岐を記述できる。 命令には様々なものがあるが典型的なものは、while ... endと if...endである。例えば、
if a == 0 p("a is zero") else p("a is not zero") end ... while a != 0 繰り返したい処理内容 endのように記述する。
次のプログラムを入力し、実行してみよ。
a = 0.0 while a < 1.0 p(a) a = a + 0.1 end次にこのプログラムの2行目を次のように書換えるとどうなるか試して見よ。
次のプログラムはキーボードから1行ずつ入力し、その内容を そのまま画面に出力するものである。
while true line = STDIN.readline p(line) if line =~ /end/ break end endこのプログラムは入力した文字列に「end」を含むと実行を 終了する。
by Tetsuo Sakaguchi
2006年 12月22日 金曜日
15時09分26秒 JST