プログラムの書き方の基本
前回の後半では、第一歩としてプログラムを実行しましたが、 そこではあくまでも実行手順の説明が目的だったので、プログラムの記述内容には触れませんでした。 そこで今回からは、プログラムの書き方の説明に入っていきましょう。今回はその基本です。
スポンサーリンク
最初に、半角と全角には注意が必要 !
プログラムを書き始める前に、一つだけ非常に重要な、気を付けないといけない事があります。 それは、恐らくみなさんが、日本語を入力できるPCを使っているという事です。
キーボードの左上にある「 全角 / 半角 」キーを押してみてください。 日本語を入力できるモードと、そうでないモードが切り替わりませんか? ここでは、前者を全角モード、後者を半角モードと呼びます。 半角モードでは、以下のように文字の幅が細くなっているはずです:
半角( 使用OK ! ) : ABC abc 123 + * = " ;
プログラムは、英数字( 英語のアルファベットと数字 )と記号を組み合わせて書きますが、 それらはすべて半角モードで入力する必要があります。 全角の英数字や記号が混じっているとエラーになるので、気を付けましょう。 (ただし後述する「文字列」では、全角も使えます。)
前回のプログラムの意味を追いながら、
書き方の基本を押さえていこう
さてここからが本題です。前回の後半では、以下の記述内容のプログラムを実行しました:
これを実行すると、画面に以下のように表示されるのでしたね:
実は、上のプログラムの記述内容には、色々と重要な要素がつまっています。 以下では、その意味を少しずつ掘り下げながら、プログラムの書き方の基本を説明していきましょう。 今回の最後まで読むと、上のプログラムの本当の意味が、すべてわかるはずです。
「 print 」関数などで、画面に文章や数値を表示できる
まず気になるのが「 print 」という部分です。 そこで以下のプログラムを書いてみてください:
これを実行すると、コンソール画面( 黒い画面 )に以下のように表示されます:
この通り、「 print ( ) 」のカッコ内に書いた内容が表示された事がわかります。 この 「 print 」 は、関数というものの一つです。 関数は、このようにカッコ内に書かれた内容に基づいて、 あらかじめ決まった処理を行ってくれます。 そう、この print 関数は、カッコ内の内容を画面に表示してくれる関数なのです。

似たような関数は他にもあります。たとえば以下のように書き直して実行してみてください:
ここで使っている「 popup 」関数は、カッコ内の内容を、小さなウィンドウに表示してくれる関数です。 実際に実行してみた様子は以下の通りです:

ちゃんとウィンドウが起動し、「 123 」と表示されましたね。 以下に、表示関連の関数をリストアップしておきます。使い方は同じなので、気軽に試してみてください:
- print 関数 :
- 内容をコンソール画面に表示( 追記 )する。最後に改行しない。
- println 関数 :
- 内容をコンソール画面に表示( 追記 )する。最後に改行する。
- popup 関数 :
- 内容を小さなウィンドウなどに表示する。( 「 OK 」を押すまで処理を止めて待つ。)
- output 関数 :
- 内容を小さなウィンドウなどに表示する。( 処理を止めて待たない。)
なおこれらは、カッコ内に「 , 」記号で区切って、複数の内容を表示してもらう事も可能です。
プログラムの中に式を書いたら、自動で計算される
さて続きです。以下のプログラムを実行してみてください:
実行結果は以下の通りです:
「 1 + 2 」という式を計算した値である、「 3 」が表示された事がわかりますね。
この通り、「 プログラムの中に式を書いたら、コンピューターがその値を計算してくれる 」というルールがあります。 これはとても重要なルールです。 というのも、print 関数のカッコ内だけの話ではなく、とにかくプログラムの中にある式は、すべて自動で計算されるからです。

この自動計算によって、上のプログラムは「 print ( 3 ) ; 」と書くのと同じ結果になったのです。 コンピューターが計算してくれるのは便利なので、色々な式を書いて試してみたくなりますね。 しかし、式の書き方は次回で詳しく説明するとして、とりあえず今は先に進みましょう。
式ではなく文章( 文字列 )として扱う場合は、
「 " 」記号ではさめば OK !
さて、「 式として計算してほしくない場合 」 はどうすればいいでしょうか? たとえば計算問題プログラムなどを作っていて、「 1 + 2 」という文章をそのまま表示してほしい場合などです。
ここで最初のプログラム「 print ( "Hello, World !" ) ; 」を思い出してください。 「 Hello World ! 」という文章を 「 " 」 記号 ではさんでいましたね。 そう、「 " 」 ではさめばよいのです:
このプログラムを実行すると、結果は以下の通りです:
上の結果からもわかる通り、 「 プログラムの中で、『 " 』 記号( ダブルクォーテーションと呼びます )ではさんだ部分は式ではなく、ただの文章として扱われる 」 というルールがあります。 これも print 関数のカッコ内だけの話ではなく、プログラム全体に通じる話です。

このように 「 式ではない、ただの文章 」 の事を、プログラミングでは「 文字列 」 と呼びます。 文章は 「 文字が列になっているデータ 」 だからです。この呼び方には慣れておきましょう。
文字列なのに「 " 」記号を忘れると… 式と見なされてエラーに !
よくあるミスとして、「 文字列として扱ってもらうべき内容を 『 " 』 ではさみ忘れる 」 というものがあります。 この場合、その内容が式の形をしているかどうかにかかわらず、式と見なされる 事に注意が必要です。 ためしに、最初のプログラムでわざと「 " 」を忘れてみましょう:
実行すると、画面の色が黒から青に変わり、以下のような内容が表示されます:
SYNTAX ERROR - 構文エラー / 1
[ LINE - 場所 ] Test : LINE 1 行目付近
[ CODE - 内容 ] print ( Hello, World ! )
[ INFO - 詳細 ] 宣言されていない変数「 Hello 」を呼び出しています。
--------------------------------------------------
SYNTAX ERROR - 構文エラー / 2
[ LINE - 場所 ] Test : LINE 1 行目付近
[ CODE - 内容 ] print ( Hello, World ! )
[ INFO - 詳細 ] 式を解釈できませんでした。式が正しい形をしていない可能性があります。
…
このように 画面が青くなった時は、プログラムの記述内容や動作にエラーがあり、実行できなかった 事を意味しています。 エラーの詳細を示すエラーメッセージが表示されています。 その内容から、やはり「 Hello, World ! 」を式として解釈しようとしたものの、 そもそも式ではないので、当然ながら失敗してしまった事がわかります。「 " 」を忘れないよう気を付けましょう。
複数の処理は、「 ; 」記号で区切る
「 ; 」記号は、一つの処理の終わりのしるし !
さてここまでで、最初のプログラム 「 print ( "Hello, World !" ) ; 」の意味は、ほとんどわかりましたね。 残っている説明は、一番後ろにある「 ; 」記号( セミコロンと呼びます ) についてだけです。
この「 ; 」記号は、一つの処理の終わり( 文末 )を意味する ものです。 プログラムの中でこの記号があると、そこから先は、そこより前とは「 別の処理 」について書いていると見なされます。 逆に言えば、以下のように、「 ; 」記号で区切って複数の処理を書ける わけです:
このプログラムを実行すると、以下のように 3 回連続で、小さなウィンドウが表示されます:

この実行結果のふるまいを、プログラムを読み返しながら、頭の中で追いかけてみましょう。
まず、最初の「 ; 」記号までの内容である、「 popup ( 1 ) 」の処理が実行されます。 その結果、小さなウィンドウが起動して「 1 」と表示されます。「 OK 」を押すと、そのウィンドウが閉じます。最初の処理はこれで終わりです。
処理が終わると、コンピューターは次の処理を実行します。それは、次の「 ; 」までの内容である「 popup ( 2 ) 」です。 その結果、再びウィンドウが起動して「 2 」と表示され、ウィンドウを閉じると、この処理も終わりです。
その処理も終わったら、コンピューターはさらに次の処理を実行します。それは、さらに次の「 ; 」までの内容である「 popup ( 3 ) 」です。 その結果、ウィンドウに「 3 」と表示され、閉じると終わりです。 次は… おっと、プログラムの最後ですね。これですべての処理が終わりました。
「 ; 」記号の後では、改行するのが普通
ところで、上のプログラムは、説明の都合で 1 行に書きましたが、実はこれは少しお行儀の悪い書き方です。 実際には以下のように、「 ; 」記号のあとに改行するのが普通です:
popup ( 2 ) ;
popup ( 3 ) ;
もしかすると、改行しないほうが読みやすいと思ったでしょうか。確かに慣れるまではそうかもしれません。 でも、もっと大きなプログラムだと、数百個以上の処理を書く必要があります。 そのような場合は 1 行におさまるはずもなく、どこかで改行する事は避けられません。
となると、各行ごとに気まぐれな長さで改行するより、 毎回「 ; 」記号の後で改行するクセをつけたほうが 「 1 行 = 1 つの処理 」 となり、慣れると読みやすいのです。 たとえば「 箇条書き 」を想像してみてください。内容は1行に1個ずつ書かれているほうが、読みやすいですね。
プログラム内にコメント( メモ )を書いておこう !
以上で、最初のプログラム「 print ( "Hello, World !" ) ; 」の意味に関する説明は、すべて終わりました。 図にまとめると、以下のようになります:

この内容を忘れないためには、ノートなどにメモしておくのもよいでしょうが、もっと手短な方法があります。 というのも、実はプログラムの中に、「 コメント 」という形でメモを残せるのです。 コメントは、プログラム実行時には完全に無視されるので、自由な内容を書く事ができます。
1 行のコメントは、先頭に「 // 」を付ければ OK !
まずは 1 行のコメントを書いてみましょう。それには、コメントの先頭に「 // 」を付けます:
print ( "Hello, World !" ) ;
そうすると、実行時に「 // 」よりも後は行末まで無視されます。実際に実行してみましょう:
この通り、確かにコメントを書いていない場合と、全く同じ結果ですね。
複数行のコメントは、「 /* 」と「 */ 」ではさむと楽
コメントの行数が多い場合、すべての行の先頭に「 // 」を付けてもよいのですが、それは少し面倒です。 そこで、「 /* 」と「 */ 」ではさんだ中身はすべてコメントになり、実行時に無視される というルールがあります。試してみましょう:
/*
(この中はすべてコメント)
以下は、画面に「 Hello, World ! 」と表示する処理。
「 print 」というのは、画面にカッコ内の内容を表示する関数。
「 " 」記号ではさんだ中身は、式ではなく文字列になる。
「 ; 」記号は、処理の終わり( 文末 )の印。
*/
print ( "Hello, World !" ) ;
実行結果は先ほどと全く同じです。長いコメントを書く場合に楽ですね。
どれくらいの頻度・分量でコメントを書くべきかというのは、個人差もあり、しばしば議論の対象にもなります。 しかし、少なくともプログラミングに慣れるまでは、マメに書いておくのがよいでしょう。 実はコメントを書くのは結構面倒なので、全く書かないクセが付きがちだからです。