コードを読みやすくする

プログラムが複雑になるにつれ、読みやすさや分かりやすさが重要になってきます。 ここでは、読みやすく分かりやすいプログラムを書く方法を説明しましょう。

改行・スペース・インデントなどを入れる

まず次の3つのコードを見比べてください。一見違うコードに見えますが、よく見るとどれもHello01.javaと似ています。違ってるのはクラス名と改行、スペース、タブの入れ方だけです。

Hello01A.java
class Hello01A{
public static void main(String args[]){System.out.println("Hello Java World!");}
}

Hello01A.javaは改行が少なすぎて、読みにくくなっています。

Hello01B.java
class
Hello01B{
public static
void main(String

    args[    ])
    {
        System
        .out.println("Hello Java World!"        );
    }
}

逆に、Hello01B.javaは改行・スペース・タブが無駄に多く入っていて、やはり読みやすいとは言えません。

Hello01C.java
class Hello01C {
public static void main(String args[]){
System.out.println("Hello Java World!");
}
}

これが一番まともそうですが、Hello01.javaとちょっと違います。

これら3つのプログラムは、どれも問題なくコンパイルできますし、実行もできます。 動作結果はHello01.javaと同じく、Hello Java Worldという文字列を画面に表示します。
3つとも試すのは面倒なので、一番ぶっとんでいるHello01B.javaだけやってみましょう。
例によってJavaIntroフォルダの中にch04フォルダを作り、その中にHello01Bフォルダを作りましょう。 次にソースコードを入力します。と言っても、さすがに今回は上記のコードをそのままコピペした方が良いでしょうね。そしてHello01Bフォルダの中にHello01B.javaとして保存し、コンパイル・実行してください。
やり方を忘れた人はもう一度、第2章を読み返してください。

Hello01Bの実行結果
Hello Java World!

どうです、ちゃんとHello Java World!と表示されたでしょう。

このことからお分かりいただけるように、Javaのコードでは改行を省いたり、改行・スペース・タブを2つ以上連続して入れても問題なくコンパイル・実行できます。

ただし、意味のある1つの言葉をスペース等で区切ることはできません。したがって、次のHello01D.javaは、コンパイルできません。

Hello01D.java
cl    ass Hello01D {
    public static void main(String args[]){
        Syst        em.out.println("Hello Java World!");
    }
}

逆に意味の有る単語の間にあるスペースを省くこともできません。したがって、次のHello01E.javaは、コンパイルできません。

Hello01E.java
classHello01E {
    publicstaticvoid main(String args[]){
        System.out.println("Hello Java World!");
    }
}

さて先ほどのHello01C.javaをもう一度見てください。Hello01.javaと違って、ブロック内の字下げが有りません。
ブロック内をスペースやタブなどで字下げすることをインデントといいます。ワープロソフトなどでも使われる言葉ですね。
インデントを使うと、コードの構造がよくわかり、読みやすくなります。 これはコードが複雑になるほど実感できるでしょう。

図 3-1 : インデント

コメントを入れてわかりやすく

人が書いたコードを見てもなかなか理解するのは難しいものです。また、自分で書いたコードでもしばらくたってから読むと「あれ、なんでこんなこと書いたんだっけ。」っていうこともありがちです。
ですからコードの中にコメントを付けて、後から読んだときに処理の流れや文の目的などがすぐ分かるようにしておくことが賢明です。

Hello02.javaは2種類のコメントの書き方を示す例です。やはり動作はHello01.javaと同じです。

Hello02.java
/*画面に文字を
表示するコード*/
class Hello02 {
    public static void main(String args[]){
        System.out.println("Hello Java World!");//Hello Java World!と表示
    }
}

次の部分が1つめのコメントです。

/*画面に文字を
表示するコード*/

/*から*/までがコメントを表していて、複数行にまたがるコメントを記述できます。

では2つめのコメントを見てみましょう。

//Hello Java World!と表示

今度は//から行末までがコメントになります。

コメントはプログラマが読むだけの目的で書くものであり、コンパイル時には無視されるので、何が書いてあっても出来上がるclassファイルには全く影響が有りません。
後からプログラムのメンテナンスやバージョンアップをするとき、スムーズに事が運ぶように、分かりやすいコメントを付けることを心掛けましょう。

尚、プログラムの一部をコメントにすることで、その部分が実行されないようにすることもあります。これをコメントアウトといいます。これは、バグの原因箇所特定の目的で使われたり、不要になったコードの一部を、念のため保存しておく場合等に使われます。

インデントやコメントを使うと、コードがわかりやすくなる。