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

見やすいプログラムにしよう

プログラムはコンピュータに指示する手順を書いたものであり、 まさにコンピュータを動かすのに必要です。 しかし、だからといってコンピュータだけが読むわけではありません。

プログラムは人も読みます。プログラムの作り方を理解するために、他人が作ったプログラムを読む、数人でチームを組んでプログラムを作る場合にも、他の人のプログラムを読む必要が出てきます。また、自分の書いたプログラムを後で読むこともよくあります。

このようにプログラムを書くには、人が読むことを配慮した書き方が必要になります。 そこで、特に重要なのが、以下の「コメントをつけること」と、「インデントをきちんとつけること」です。

説明をつけよう

人がプログラムを読んで理解する場合、プログラムだけしか書かないと何を行っているのか分かりにくくなりがちです。 そこで、プログラムに説明文を書き加えるのが普通です。 この説明文をコメント(注釈)といいます。

Rubyでコメントを付けるには、# を使います。 # を打つと、# からその行の終わりまでがコメントになります。 コメントの部分はプログラムを実行する際には無視されます。 つまり、コメントに何を書こうがプログラムの実行には影響しません。 まさにコメントは人がプログラムを読むためにあるのです。

以下にコメントの例を示します。赤い字のところがコメントです。

# print-sample.rb - print文の例
# by Yoshihiro OHMI

print 100+50   # 100と50を足した値、150が表示される

print "100+50" # "100+50"は文字列なので100+50と表示される

コメントをきちんと書く習慣を付けましょう。 プログラムは他人に読まれます。 他人が読む時の助けとなるように分かりやすいコメントを付けてください。 また、「数年たったら自分も他人」です。自分が書いたプログラムでも、 長い時間が経つと細かいところはどうだったのか忘れてしまいます。 自分のためにもコメントを書きましょう。

ここで注意しないといけないのは、単にコメントを長々と書けば良いわけではないことです。無駄に長いコメントは読みにくいだけです。分かりやすさが重要です。 このため、上の例のようにprint 100+50のコメントに 100と50を足すと書くのは、プログラミングを習い始めた時点では意味がありますが、ある程度習熟すると無駄なコメントとなります。なぜなら、そんなことはある程度プログラミングができる人には分かりきったことだからです。

コメントには主に意味を書くように心がけましょう。 例えば、先程のprint 100+50なら、仮に100がチョコレートの金額、 50が送料だとすると、チョコレートを送る場合にかかる金額を表示すると書くのは意味が書かれたコメントと言えるでしょう。

体裁を整えよう

プログラムの構造を捉えやすくするために、インデント(字下げ)を行うのが常識です。 例えば、if文では条件が成り立つ場合に、実行するところ(then〜end)を行の先頭に空白を入れて右側にずらします。

a = 100
if (a == 100) then
  print "100点満点。"
  print "アンタはエライ!\n"
end

Rubyの場合、入れる空白は2文字が主流です。他に4文字や8文字入れる人もいます。

また、インデントしている中でさらにインデントすることも良くあります。 以下のようにif文の中にif文が入っている場合などです。

math = 65
english = 45
if (math >= 50) then
  if (english >= 50) then
    print "進級決定\n"
  end
end

print文の行頭が4文字空いているのは、2重のif文に入っているので、 2文字+2文字空けているのです。他にもwhile文やdef(メソッド定義)や クラス定義など色々な場面でインデントを行います。 今後、プログラム例をよく見て、どこでどのようにインデントするのか注意してみてください。

インデントがきちんとしていないプログラムはだらしないと感じます。 また、読みづらくイライラします。 インデントをきちんとして、読むやすいプログラムを書くように心がけましょう。


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