2015年3月3日火曜日

Perlを学ぼう 3

前回は以下のプログラムを実行しました。

#
#  Hello World Program in Perl
#
print "Hello World!\n";

と書いてあります。

1行目、2行目、3行目にある#(シャープみたいな記号)は、「プログラム実行のとき、この行は無視してね」という意味です。ふつう、プログラムに適当なことを書くと、エラーになってちゃんとプログラムが動きません。しかし、#を入れておくと、コンピュータはプログラム実行の際、その行を無視します。

なので#を先頭に入れておけば、その行にはいろいろなコメントを書き込めるし、そのままプログラム実行ができるというわけです。ちなみに上記のプログラムには
#Hello World Program in Perl
と書いてありますが、これは「Perlで書いたHelloWorldプログラムだよ」って意味です。

#の行は無視されるので、適当なことを書いてもエラーにはなりません。ちゃんと実行できます。

では、このプログラムの
print "Hello World!\n";
これはどういう意味なのでしょうか。

1、まず、最初の「print」は画面に文字を表示させるための命令です。printという命令を使うことで、「" "」(ダブルクオーテーションマーク)のなかの文字などを画面に表示することができます。上記プログラムでは"Hello World!\n"とありますから、これは「Hello World!\n」を表示するプログラムだということになりますね。

2、では、Hello World!\n の「\n」はどういう意味でしょうか。これは「改行をしろ」という命令です。例えば、
print "Hello World!";
print "Hello World!";
print "Hello World!";
このプログラムは「\n」がはいっていません。これを実行してみると
こういう結果になりました。「Hello World!Hello World!Hello World!」と書かれています。\n が入っていなかったので、改行がされていないのですね。読みづらいです。
では、今度は \n を使ってみます。
print "Hello World!\n";
print "Hello World!\n";
print "Hello World!\n";

今度はきちんと改行されました。ぐっと読みやすくなりましたね。

3、最後に
print "Hello World!\n"; 
の「;」このマークの意味です。 これは「ここで命令は一区切りだよ」という意味です。だから、print などの命令をしたら、「;」を書いて、命令が一区切りする場所をコンピュータに教えてあげます。

国語の作文でいう「。」みたいなものだと考えてください。文章だって、
「あの時私は考えたなぜなら私はすでに事実をしっていたからだ彼はそれをしらなかったようで・・・」
こんな風に「。」がないと、読むときに混乱してしまいますよね。

Perlだと「;」を使ってあげないと、コンピュータが混乱してしまうのです。試しに「;」を使わないでプログラムを実行してみましょう。
print "Hello World!\n"
print "Hello World!\n"
print "Hello World!\n"

;」がないですね。実行結果は以下の通り。
エラーになってしまいました。syntax errorというのは構文エラーという意味で、「構文が間違っててコンピュータが理解できないよ」という意味です。このように最後に「;」がないとエラーになってプログラムが動かないので気をつけましょう。


ちなみに、printは「" "」ダブルクオーテーション内の文字列を表示しろという命令ですが、ひとつの print という命令で、複数の文字列を表示することができます。

上記のように、「" "」で囲んだ文字列の間に「,」カンマを置いて、ひとつのprintの命令で複数の文字列を表示させることができます。

実行すると上記のようになります。printは一回しか使っていないですが、きちんと3つの文章が表示されていますね。