どんなプログラミング言語でも数値と「文字列」を 扱うことができる。「数値」は足し算引き算掛算割り算のできるもの、 文字列は文字の並んだメッセージが入るもの。文字列であることを 分かりやすくするためにダブルクォーテーション "" で括る。
5+3は8、5×3は15。
"a"と"b"は足し算できないが、くっつけて 足し算と見なすことはできる。
"a" + "b" は "ab"
ただし、掛算はできない。
"5" + "3" は "53"
なんらかの「値」を入れておくための入れ物を変数という。 他の言語と違い、Rubyでは変数に数値でも文字列でも自由に入れられる。 変数には好きな名前を付けられる(アルファベットで始まる名前)。
ktermで、irbコマンドを起動し、
irsv{i2005123}% irb
以下のリストを入力してみよう。
x = 5 y = 3 print x+y print x*y a = "5" b = "3" print a+b print a*b
irbを終了するには C-d をタイプする。
上から下へ一直線に処理をするのではなく、場合分けしたり、 繰り返したりするために使うのが制御構造である。
「もし〜〜ならば、こうする、そうでなければ、こうする」
if 条件 「条件」が成り立つときの処理 else そうでないときの処理 end
(else節はなくても良い)
「〜〜が成り立っている間ずっと繰り返す」
while 条件 「条件」が成り立っている間繰り返す処理 end
「条件」の部分には、等号不等号や、パターンマッチングが書ける。
数値の比較
A == B | AとBが等しい? |
A != B | AとBが等しくない? |
A > B | AのほうがBより大きい? |
A >= B | AはB以上? |
A < B | AのほうがBより小さい? |
A <= B | AはB以下? |
パターンマッチング
/パターン/ =~ S | パターンが文字列Sとマッチする |
/パターン/ !~ S | パターンが文字列Sとマッチしない |
キーボードからデータを読むには gets
メソッドを使う。
line = gets
とすると、キーボードから読んだ文字列が line
変数に
代入される。ただしこれだとリターンキー(改行文字)も付く。改行文字を
取り除きたいときは
line = gets.chomp
とする。
データの入力をキーボード(標準入力)ではなく、決まったファイルから
行ないたいときは open
メソッドを使う。
open("ファイル名", "r") do |変数| 〜〜 ファイルを読みながら行なう処理 〜〜 〜〜 「変数.gets」 でファイルから1行ずつ読む 〜〜 end
例えば以下のプログラムは hoge.txt
を1行ずつ
最後まで読み込んで、読み込んだ行を画面に表示するものである。
open("hoge.txt", "r") do |data| while line=data.gets print line end end