プログラミングとは,人間が計算機に命令を行う手順を作成することです.命令
を実行させると,計算機は何かの結果を残します.結果には様々な形式がありま
すが,ここでは最初の一歩として,画面に文字を表示することを行ってみましょ
う.画面に限らず,計算機が結果を出す場合,その動作を「出力」といいます.
- 基本的なメソッド
計算機に対して命令する場合,その指示内容を「コマンド」(命令,指令)と一般的には言いま
す.しかし,プログラミング言語においては,その形態にしたがって,「関数」
と呼ばれたり,「メソッド」(手段,方法)と呼ばれたりします.Rubyはオブジェ
クト指向言語なので,後者のメソッドを使います.
さて,出力するためのメソッドにはいくつかありますが,これから紹介するのは,
文字を出力するためのメソッドです.正確には,「文字列」(String)と呼びます
が,画面に文字を表示するものをこれからいくつか試して行きましょう.
- puts
プログラミングを学習する際に,古今東西みな「Hello, world!」と言う文字を
画面に表示するところから始めることになっているそうです.ここでも,それに
従って,まずはやってみましょう.
これだけでもプログラミングです.この文字をS@pphireのスクリプト入力画面に
入力します.マウスを使った「コピー&ペースト」で構いません.記入し終えた
ら,「実行」ボタンをクリックします.「結果表示」ウィンドウに
無事に
と,表示されたでしょうか.ここまでの操作がまずは基本ですので,出来ない
場合には遠慮なく呼んで下さい.
さて,先ほどのスクリプトをもう一度見てみます.ほぼ全てのプログラミング言語におけるプログラムの記
述は,英語の単語を使った英語の文法に似た表現がベースになっています.そして,プ
ログラムは人間がコンピュータに対して命令をするので,基本的には「命令文」
です.それを考慮すると,最初の
puts
が命令で,「出力しなさい」の部分になり,「目的語」の「なになにを〜」が二
重引用符の「''」で囲まれた部分のようです.puts は英語の三人称単
数現在の形をしたputでは無く,最後のs (文字列,stringのs) までが一つの言葉ですので,間違えない
ようにしましょう.
ところで,二重引用符は出力されていません.二重引用符は文字列の開始と終了
を示すために用いられている記号なので,結果には出てきません.二重引用符も
含めて表示する方法は,後で紹介します.
puts を利用した文字列の出力は,その目的語に相当する部分を複数与
えることが出来ます.そのときに,カンマ「,」で区切って文字列を与
えます.次の例で確認してみましょう.二重引用符とカンマがくり返し
出てきますので,間違いの無いようにしてください.
puts "force", "impulse", "gundam"
|
Rubyでスクリプトを書く場合,カンマで区切るときに,カンマの後にスペースを
入れる必要は無いのですが,スクリプトを見やすくするために適宜スペースを置
く方が良いでしょう.
結果は,
のように文字列の一つ一つが一行ずつ表示されます.
- print
出力する方法はどの言語でも通常一つではありません.Rubyにもいろいろなメソッ
ドが用意されていますが,代表的なものにこの print があります.先
ほどのスクリプトを puts から print に替えてみましょう.
print "force", "impulse", "gundam"
|
実行ボタンを押して得られる結果は先ほどとちょっと違いますね.こんどは1行に全部が表示されています.このよう
に puts を使うのか, print にするのかは,複数の結果を
表示するときにどのように扱うか,その場合に応じて選択することになります.
puts が単純なので,ちょっと表示したい場合には役に立ち
ますが,出力形式を整形して目的とする形にするには print
の方が適しているでしょう.
print を使う場合には,「改行文字」を必要とします.これは,UNIX
系のOSでは,\n と表現される特殊な文字です.この文字をコ
ンピュータが見つけると,その段階で出力を改行してくれます.そこで,
スクリプトを次のように変更します.
print "force\n", "impulse\n", "gundam\n"
|
改行文字も一つの文字なので二重引用符の中に与えます.これにより,出力結果
が1行ずつになります.
- p
p というたった一文字のメソッドもあります.これも出力に使うもの
ですが,これは文字を表示するのではなく,指定されたオブジェクトの
「内容」を出力します.「オブジェクト」とは,Rubyが扱うことのでき
る「もの」と考えて下さい.それは文字や数字かも知れませんし,メソッ
ドそのものかもしれません.とにかく,あつかうことのできるものです.
さて,次のスクリプトを実行してみましょう.
結果はどうなったでしょうか.次に,p メソッドに代えてみます.
結果の違いについては,今後変数を扱って行くときにまた説明します.
- printf
数値を桁数を指定して表示したり,文字を右や左に揃えたりして出力したい場合
に,このフォーマット付きの出力メソッドであるprintf を使います.
使い方はちょっと難しいので,後で変数などを学習してから改めて取り上げます.
- 特殊文字の出力
二重引用符が文字列の区切りの記号として利用されるために,通常の出力メソッ
ドでは出力できませんでしたが,特殊な記号と併用すると出力できるようになり
ます.先ほど改行文字として \n というものを見ましたが,ここでバッ
クスラッシュ (場合によっては円マークに見えます) は次の文字の意味を打ち消
す動作を行います.すなわち,通常の n という文字ではなくなること
を意味します.そこで,次のようなスクリプトを作ってみます.
print "\"sword impulse gundam\"\n"
|
ずいぶんとややこしい構成になってしまいましたが,二重引用符の意味を打ち消
すバックスラッシュによりその直後の二重引用符はただの文字になっていますの
で,結果の方に出力されます.
このようなややこしい表現を避けるために,文字列の開始と終了を二重引用符以
外の記号を使って表現することもRubyでは出来ますが,今日の内容からは省略し
ます.