このページではJavaプログラム内での空白や改行の扱いについてまとめてお伝えした。
普段はなかなか意識をしないかもしれないが、考え方としては大切なので、把握はしておこう。
目次
Javaの空白や改行
それでは早速、Javaの空白や改行の出力方法について確認していこう。
実行できないプログラムはどれか?
いきなりではあるが、クイズから始めてみることにしよう。
次のようなサンプルプログラムがある。
1 2 3 4 5 |
public class ClassSample { public static void main(String args[]){ System.out.println("Hello! World!"); } } |
コンソールに"Hello!World!"という文字をコンソールに出力するシンプルなプログラムだ。
このプログラムの書き方を変えて、以下の3種類のプログラムを作成してみた。このうち、実行できないプログラムはどのプログラムだろうか。
(1)文節ごとに改行のあるプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public class ClassSample { public static void main (String args[]){ System. out. println("Hello! World!"); } } |
(2)文の最初に空白がなく、ところどころ改行されているプログラム
1 2 3 4 5 6 7 8 |
public class ClassSample { public static void main(String args[]){ System. out. println("Hello! World!"); } } |
(3)空白や改行がランダムに設定されているプログラム
1 2 3 4 5 6 7 8 |
public class ClassSample { public static vo id main(String args[]){ Sys tem.out.pr int ln( "Hello! World!"); } } |
おわかりだろうか。正解は(3)になる。これら3種類のプログラムにおいて、実行できないのは(3)だけだ。
Javaの空白と改行の扱い
それでは(1)と(2)のプログラムが動作して、(3)のプログラムだけが動作しないのかを解説しよう。
(1)のプログラム
まず(1)のプログラムから見てみると、改行が多く、非常に読みづらいプログラムであることが見て取れる。しかしこのプログラムは正しく動作する。
なぜなら、Javaでは文節単位であれば、好きに改行を入れて書くことができるからだ。
Javaのソースプログラムを実行可能な形式に変換することを「コンパイル」と言い、その変換する処理を行うプログラムを「コンパイラ」と言うが、文節単位で改行が設定されていてもコンパイラはプログラムを理解できる。人間には読みづらくても、コンパイラは理解できるので問題はないのだ。
(2)のプログラム
それでは(2)のプログラムはどうだろう。(1)と同じく改行があり、文の空白もなく読みづらい印象を受けるが、この場合もコンパイラがプログラムを理解できるので問題ない。
(3)のプログラム
(3)の場合は文節の途中で空白や改行が設定されている。この場合は文節を理解することができないため、どのような命令が書かれているのかコンパイラが理解することができない。よって、コンパイルエラーとなって実行することができないのだ。
読みやすくする工夫が必要
空白や改行は文節単位であれば自由に設定することができるが、プログラムを書くのは人間である。そのため、人間が読みやすいプログラムを書くことが大切だ。
もう一度最初のサンプルプログラムを見てみよう。
1 2 3 4 5 |
public class ClassSample { public static void main(String args[]){ System.out.println("Hello! World!"); } } |
メソッドの前には空白を設定し、メソッドの処理内容を書く際には、さらに空白が挿入されて読みやすくなっている。文の最初に空白を設定して書くことを「インデント(字下げ)」と言うが、インデントをつけてコーディングすると読みやすいソースコードを書くことができる。
また、プログラムの1文が長すぎる場合、エディタを右にスクロールさせて読む必要がある。スクロール操作をしながらだと読みづらくなるため、場合によって改行を設定して、スクロールしなくても読めるようなプログラムを書くといいだろう。
まとめ
このページではJavaプログラム内の空白や改行についてまとめてお伝えしてきた。
普段深く考えることはないだろうが、把握しておくと役立つ場面があるだろう。