プログラムで何かを計算しても,それだけでは計算機の中で 全てが行われるだけで,私たちが計算結果を知ることができません. 計算結果を知るためには,それを何らかの形で画面に表示する必要があります.
ここでは,Rubyで画面にメッセージを表示する基本的な方法と, それに関連して, Rubyにおける基本概念であるオブジェクトとメソッドについて簡単に説明します. なお,オブジェクトやメソッドは, オブジェクト指向とよばれるプログラミングパラダイムで現れる一般的な概念です. また, Rubyのプログラムに関する一般的な注意を述べます.
もくじ
注意: ¥記号とバックスラッシュ
プログラムでは「\」という記号をよく使います.これはバックスラッシュ呼ばれます.「/」を左右反転した記号です(左上から右下への斜線). しかしこれが「¥」記号として表示される場合があります. 以下で「¥記号」が現れる場合は,それらをすべて「バックスラッシュ」に読み替えて下さい. なおこれは文字データの表示方法の問題です.
メッセージの表示
printを使えば,メッセージを画面に表示できます. printの後に"……"でくくって,メッセージを書きます. なお"……"でくくられたデータを文字列とよびます.
特殊な文字の表示
printで表示されたメッセージには, プログラムに書いてある通りに表示が行われていない部分もあります. それらは特殊な表示を行うための記述です.
\n | 改行する |
---|---|
\" | 『"』を表示する |
\\ | 『\』を表示する |
特殊な表示を行うには,データとして『\』に続いて適宜文字を指定します. ここでは例として三つ「\n,\",\\」を挙げています. 『\n』(改行)については例題では文字列の末尾のみで利用していますが, 一般にはどこに入れても構いません. 『"』は文字列を区切るために利用しますので,『"』自身はそのままでは文字列に入れることができません. そのために『"』を表示するには特別な記法が必要となるわけです. また『\』は特殊な表示を行うことを意味するのに使いますので『\』自身を出力する場合も特別な記法が必要となります.
データの表示
printでは文字列だけでなく,数値,計算式などを含めて表示することができます. 次に簡単な例を示します.
# 『円周率はおよそ3.14159265358979です.』と表示する.
# 「Math::PI」はRubyに定義されている円周率πを表す定数
print "円周率はおよそ#{Math::PI}です.\n"
# 『4!=24』と表示する(*は乗算の演算子).
print "4!=#{1*2*3*4}\n"
これらの例のように"..."の中に「#{式}」と記述すると, 式を計算した結果に置き換えられて表示されます(定数も立派な式です).
オブジェクトとメソッド
オブジェクト | 「データ」と「データの処理機能」を合わせたもの |
---|---|
メソッド | オブジェクトを使って何からの処理を行う機能 |
上記の例題プログラムの説明では,文字列や数値などをデータとよんでいます. Rubyでは,データの実体はオブジェクトです. 文字列,数値の他にも,Rubyでは,さまざまなオブジェクトが利用できます. ここでは,オブジェクトの定義を持ち出すことは避けますが, 簡単にいえば,オブジェクトとは, データとそのデータに対する処理の機能を合わせもつ対象といえます.
また例題プログラムでは, printが文字列(文字列オブジェクト)を表示するのに利用されていました. このprintのように,オブジェクトを扱って何らかの処理をする機能を メソッドといいます. またメソッドに与えるオブジェクトのことを引数(ひきすう)といいます. 引数の個数が0の場合もあります. オブジェクトがメソッドの引数として与えられていることを明示する場合には, 引数全体を( )でくくります.
# 『円周率はおよそ3.14159265358979です.』と表示する.
print("円周率はおよそ#{Math::PI}です.\n")
プログラムの意味があいまいにならない限りは( )を省略できます.
# 『円周率はおよそ3.14159265358979です.』と表示する.
print "円周率はおよそ#{Math::PI}です.\n"
なお,メソッドを使って処理をすることをメソッドを呼び出す,メソッドを起動するなどのようにいいます.
オブジェクト,メソッドは,Rubyの基本的な概念です. 上記のオブジェクトとメソッドの説明は,かなり大雑把なもので, まったく十分とは言えませんが,ここでは,ひとまずこの程度に留めておくことにします.
Rubyに関する一般的な注意
Rubyでプログラムを書いていく上で知っておくべき点,問題になりそうな点について ここで説明します.
- プログラムの構成
-
プログラムは式が並んだものです.
(原則として)先頭の式から順に実行されていきます.
式はメソッド呼び出しであったり,さまざまな定義であったりします.
- 大文字と小文字
-
大文字と小文字は区別されます.
したがって,「print」を「Print」や「PRINT」のように書くことはできません.
- 日本語の扱い
-
文字列とコメントには日本語を自由に使うことができます.
それ以外には,日本語は使わないようにしておいた方が無難でしょう.
たとえば,次のような記号を
(文字列とコメント以外で)日本語モードで書くと
英字で書いた場合と区別がつきにくいため,
一見して分かりにくい文法エラーを引き起こしますので,
気をつけて下さい.
「 」 空白 ” 二重引用符 (){}[] 各種括弧
このようなことが分かっていれば, この演習の環境でプログラミングを行う限りは 日本語の扱いでとくに問題になることはないかと思います.