第1章.ソースコードの見た目を整えよう

第1章.ソースコードの見た目を整えよう
読 み や す い プ ロ グ ラ ム を 書 く に は 、 ま ず 、ソ ー ス コ ー ドの 見 た 目 を整 えて 、 き れ い に 書 く こ と が 大 切 で
す。
手 書 き で文 章 を書 く とき の 動 作 に 例 え る と 、 「 丁 寧 な字 で 、 位 置 を まっ す ぐ 揃 え て 書 く 」 と い う感 覚 に
近 い です 。
こ の 章 では 、 ソ ー ス コ ー ドの 見 た 目 の 整 え 方 や 、 整 え る 上 で 気 を つ ける ポ イ ン ト に つ い て説 明 し ま す 。
1-1.インデント(字下げ)を行おう
ソースコードの見 た目 で最 も重 要 なのがインデント(字 下 げ)です。 インデントとは、if や for など、波
括 弧 { } で作 られるブロック内 の各 行 を、1タブ分 (半 角 スペース 4 個 分 等 )下 げることです。
インデントを行 うことにより、プログラムの構 造 が把 握 しやすくなります。 逆 に、インデントがきちんと行 わ
れていないソースは、どこからどこまでが分 岐 や繰 り返 しの範 囲 なのかが分 かりづらく、 プログラムの内 容
を解 析 するのが難 しくなります。
インデントが崩 れているソースコードは、読 みにくさのあまり、読 む気 を無 くしてしまうことさえあります。 ま
た、そのようなプログラムは、プログラムロジックの品 質 まであやしく思 えてきてしまいます。 ブロックの構 造
もきちんと整 えられないプログラマに、まともな論 理 構 造 が組 み立 てられるとは到 底 思 えないからです。 プ
ログラムを書 く際 は、必 ずインデントを行 うようにしましょう。
Copyright (C) 2015 株式会社 JOBSUPPORT All Rights Reserved.
タブ or スペース ?
インデントには、タブ文 字 を使 用 する方 法 と半 角 スペースを使 用 する方 法 があります。 インデントにタ
ブ文 字 を使 うか半 角 スペースを使 うかは、各 プロジェクトで決 められていることもありますが、 プログラ
ムを書 く人 の好 みだったりすることもあります。
まともなエディタであれば、タブキーを押 下 したときに半 角 スペース 4 個 分 等 に置 き換 えてインデントを
行 う機 能 を備 えています。 また、タブ文 字 を半 角 スペース何 個 分 の幅 でエディタ画 面 上 に表 示 するの
かを指 定 することもできます。 よって、タブとスペースのどちらを使 用 してもコーディング作 業 に支 障 が
あるというようなことは特 にありません。
ただし、半 角 スペースでインデントを行 っていると、 たまにソースを修 正 する際 に誤 ってスペース1文
字 分 だけずれてしまって微 妙 にインデントが崩 れてしまうことがあります。 通 常 は、タブ文 字 を使 用 した
ほうが、インデントがきれいに整 った状 態 を保 ちやすいです。 一 般 的 には、インデントには半 角 スペー
ス 4 個 分 の幅 のタブ文 字 を使 用 することが多 いようです。
1-2.空白(スペース)を入れよう
変 数 名 と演 算 子 の間 や、括 弧 やカンマの前 /後 には、適 宜 半 角 スペースを挿 入 し、それぞれが識 別 しや
すくなるようにしましょう。 全 くスペースを入 れずに記 述 してしまうと、変 数 と演 算 子 等 の区 切 りが分 かりづ
らくなり、読 みにくくなってしまいます。
以 下 に、スペースを挿 入 した記 述 例 を示 します。
Copyright (C) 2015 株式会社 JOBSUPPORT All Rights Reserved.
・代入演算子、算術演算子
i = num + 10;
^ ^
^ ^
・if 文、比較演算子
if (ret == 0) {
^
^ ^ ^
※「(」とその直後の文字の間には空白を入れない。
「)」とその直前の文字の間には空白を入れない。
・for 文
for (expression1; expression2; expression3) {
^
^
^
for (int i = 0; i < arr.length; i++) {
^
^
^
^
・3 項演算子
absNum = (num >= 0) ? num : -num;
^ ^
^ ^
・キャスト演算子
ave = (double) sum / count;
^
・配列、new 演算子
int[] arr = new int[10];
^
^
^
※ Java では、配列は型の後ろに[]が来る。
型と「[」の間には空白を入れない。
・アクセス修飾子、フィールド
private String message;
^
^
・コンストラクタ
public HelloJava() {
^
message = "Hello, Java!";
}
※ コンストラクタ名と「(」の間には空白を入れない。
Copyright (C) 2015 株式会社 JOBSUPPORT All Rights Reserved.
・メソッドの呼び出し
hj.print(name, age);
^
※ ドット演算子の前後には空白を入れない。
メソッド名の後ろに続く「(」の前には空白を入れない。
1-3.空行を入れよう
プログラムは色 々な処 理 が組 み合 わさって出 来 上 がりますが、プログラムが長 くなってくると処 理 の流 れ
を 追 うのが大 変 になってきます。
このとき、まとまった処 理 ごとにソースコードに空 行 が挿 入 されていると、 空 行 から空 行 までのまとまった
処 理 をひとつの「かたまり」と認 識 して読 むことができ、 プログラムの流 れが追 いやすくなります。 逆 に、ソ
ースコードに空 行 が全 く挿 入 されていない場 合 、 どこからどこまでをひとつの処 理 のまとまりと見 てよいの
かが分 かりづらくなり、読 みにくくなります。
プログラムを記 述 する際 は、関 連 した処 理 のまとまりを意 識 して、適 宜 空 行 を挿 入 しましょう。
Copyright (C) 2015 株式会社 JOBSUPPORT All Rights Reserved.
1-4.波括弧 { } の記述位置を統一しよう
Java では、波 括 弧
{ } で関 数 /メソッドや if、for 文 などのブロックを作 りますが、波 括 弧 を記 述 する位
置 は コーディングのスタイルによりさまざまな種 類 があります。
基 本 的 に、どのスタイルを使 用 しても問 題 はありません。 しかし、ひとつのソースファイル内 で複 数 のスタ
イルが混 在 していると、とても読 みにくいソースになってしまいます。
波 括 弧 の記 述 位 置 のスタイルは、一 貫 して同 じものを使 うようにしましょう。
Copyright (C) 2015 株式会社 JOBSUPPORT All Rights Reserved.
Java で一 般 的 な、K&R スタイルでのソースコードの記 述 例 を以 下 に示 します。
1-5.波括弧 { } は省略せずに書こう
Java では、if や for 文 などで処 理 が1文 の場 合 は、波 括 弧 を省 略 して記 述 することができます。 しかし、
処 理 が1文 の場 合 でも、波 括 弧 は省 略 せずに必 ず記 述 するようにしたほうがよいです。
波 括 弧 を省 略 すると、以 下 のような問 題 があります。

文 のインデントのみで処 理 部 分 を判 別 しなければならないため、やや明 確 さに欠 ける。

else-if 等 で複 数 の判 定 が存 在 する場 合 に、波 括 弧 のあるものとないものが混 ざっていると読 みにくくなる。

ループや判 定 のネストが深 くなると制 御 文 の対 応 関 係 が把 握 しづらくなる。

その周 辺 でバグがあった場 合 、「これは波 括 弧 がなくて本 当 に大 丈 夫 か?」「つけ忘 れではないか?」等 、括
弧 の有 無 による動 作 の違 いやコードの妥 当 性 をわざわざ検 証 しなければならなくなる。

プログラムの修 正 の際 に処 理 内 容 が複 数 文 必 要 になったとき、処 理 を追 加 すると同 時 に記 述 されていなかっ
た波 括 弧 を付 け加 えないといけないため、少 し面 倒 。

if がネストしているときに else-if や else を記 述 する場 合 は、その else がどの if にかかっているかを
把 握 するためにひとつひとつの if の制 御 の範 囲 を確 認 する必 要 があり、煩 雑 。うっかり読 み誤 ると難 解 なバグ
になる。
波 括 弧 を必 ず記 述 するようにした場 合 、若 干 行 数 が増 えてしまいますが、上 述 のような問 題 は解 消 されま
す。 プログラムをより明 確 にし、余 計 な誤 解 を避 け、少 しでも安 全 にするため、波 括 弧 は省 略 せずに書 き
ましょう。
Copyright (C) 2015 株式会社 JOBSUPPORT All Rights Reserved.
1-6.一行が長くなりすぎないようにしよう
ソースコードの各 行 は、長 くなりすぎないようにしましょう。
行 が長 すぎると、エディタのウィンドウ幅 に収 まらず、横 スクロールバーを操 作 しなければならなくなります。
コード内 容 を確 認 するためにいちいちスクロールバーを操 作 するのは面 倒 です。 一 般 的 に、一 行 の長 さは
半 角 の 80~100 文 字 くらいまでに収 めるようにしたほうがよいです。
しかし、条 件 式 が複 合 条 件 になって if 文 が長 くなる場 合 など、行 がどうしても長 くなってしまうこともあり
ます。 その場 合 は適 宜 改 行 を入 れて読 みやすくなるようにする必 要 があります。
Copyright (C) 2015 株式会社 JOBSUPPORT All Rights Reserved.
改 行 する場 合 はインデントしたほうがよいです。 後 続 の行 と明 確 に区 別 できるように2つ分 のインデント
を行 うと読 みやすくなります。
Copyright (C) 2015 株式会社 JOBSUPPORT All Rights Reserved.