コンピュータリテラシー演習のページへ
Rubyによるはじめてのプログラミング

画面に表示する

プログラムは通常、何らかの処理を行なってその結果を出力します。 ここでは、出力として一番典型的な画面への表示を説明します。

Rubyでは、print文 を使って画面表示が行なえます。

※ Rubyの場合、print文のことを正確にはprintメソッドといいます。
print "Welcome to Ruby.\n"

前の節で説明したプログラムは、 Welcome to Ruby という文字の並びを画面に表示します。これを文字列といいます。 ""ではさんだ部分が文字列です。 このように文字列を表現するときは、文字列を" ではさみます。 ただし、\n は特殊な文字で「改行」を意味します。例えば、

print "Welcome to \nRuby.\n"

を実行すると、

Welcome to
Ruby.

と表示されます。

\n以外にも特殊な文字列があります。 詳しくはこちらを見てください。 なお、\ 自体を表現したい場合は、\\と書きます。 さて、文字列の中に " を入れたい場合は、どうするのでしょうか? " を入れたい場合は、\" と書けば良いのです。

以上のprint文は、画面に表示する命令と説明しましたが、正確には標準出力に出力していることになります。標準出力については、UNIXの標準入出力とリダイレクションを見てください。

電卓のように使ってみる

次に電卓でできるような計算をしてみましょう。 printの後に計算式を書いてみましょう。

print2.rb : 足し算を行うプログラム
print 100+50

これを実行すると、150が表示されます。ただし注意しないといけないのは、 電卓と違って掛ける記号は×ではなく*、割る記号は÷ではなく/を使います。 以下の例を見てください。

print 100*50 5000 100×50の値を表示
print 100/50 2 100÷50の値を表示
print 10+20*3 70 10+20×3の値を表示
print ((10+20)*3) 90 (10+20)×3の値を表示
print 10%3 1 10を3で割った余りを表示

また、

print3.rb : "100+50"を表示するプログラム
print "100+50"

は、100+50と表示されます。 "100+50"は100と50を足すのではなく、 100+50という単なる文字の並び(文字列)なのです。この文字列と計算結果 を一緒に表示してみましょう。

print4.rb : "100+50 = ", 100+50 を表示するプログラム
 print "100+50 = ", 100+50

実行結果:

100+50 = 150

このように、print文では表示したいものを ,(カンマ)で区切って並べることができます。

例:

print5.rb : 計算結果をを表示するプログラム
 print "今月のこづかいは", 24000/12, "円です。\n"

実行結果:

今月のこづかいは2000円です。

通常はこのようにprint文の最後に"\n"をつけて改行してください。 そうしないと次のprint文による表示とつながってしまいます。

[補足] 今までは、print文は、例えばprint "Welcome\n" と書きましたが、 これは正式には、
print("Welcome\n")
と書きます。

つまり、print "Welcome\n" はカッコが省略されている書き方なのです。 このカッコは、あいまいでない、つまり、別の意味にとられる恐れがなければ省略できます。

例えば、以下の場合はカッコを省略できません。

print ((10+20)*3, "\n")

これを、print (10+20)*3, "\n"と書くとエラーになります。 そう書くと、(print (10+20))*3, "\n" という意味になります。 これは、まずprint (10+20)でひとまとまりに解釈されて、 その後に *3, "\n" があると解釈されます。 厳密に言うと、print (10+20)が実行され、その結果として返す値に対し *3を実行しようとしてエラーになります。

プログラムを実行してエラーが出て、どこも誤っていないようなら、省略してはいけないカッコを省略していないか疑ってください。

整数と実数

次に100を3で割ってみましょう。

print6.rb : 整数による割り算
print 100/3

33と表示されるはずです。 これを電卓で計算するとどうなるでしょうか? 33.33333…と表示されるはずです。

実は、この場合 Ruby は整数の割り算を行なっています。 つまり整数値を整数値で割り、答えも整数値として計算しています。 このため小数点以下は切り捨てられてしまいます。 実数として計算したい場合には、割るほうか割られるほうかのどちらかを実数として書きます。

print7.rb : 実数による割り算
print 100.0/3
もしくは
print 100/3.0

33.33333333 と表示されるはずです。


東京情報大学情報システム学科
大見 嘉弘(Yoshihiro OHMI)
<ohmi@rsch.tuis.ac.jp>