こんにちは。ユーキです。
今日はプログラミングにおいて、インデント(字下げ)が大切な理由について、お話をしたいと思います。
インデントとは
処理単位(ブロック単位)で字下げをすることをインデントといいます。
プログラミングをする上で、読みやすいコードを書けるということは重要です。なぜなら、不具合(バグ)は複雑な処理、読みにくいコード上で発生しやすいからです。すこしでも読みやすいコード、可読性の高いコードとするために、インデントはつけることは必須です。
具体例での比較
実際にインデントがそろっているコードとそうでないコードを比較してみまししょう。コードはJavaで書いていますが、一般的なロジックなので、言語の違いはあまり気にせず、見てもらえると思います。
まずはインデントが正しい状態で書かれていないコードになります。
public String judgeOdd(int value) {
String msg = "";
if ( (value % 2) == 0 ) {
msg = msg + "指定した引数は偶数です。";
} else {
if( value < 500 ) {
msg = msg + "(500未満)";
}
msg = msg + "指定した引数は奇数です。";
}
return msg;
}
次にインデントが正しい状態かかれたコードです。
public String judgeOdd(int value) {
String msg = "";
if ( (value % 2) == 0 ) {
msg = msg + "指定した引数は偶数です。";
} else {
if( value < 500 ) {
msg = msg + "(500未満)";
}
msg = msg + "指定した引数は奇数です。";
}
return msg;
}
ちゃんと正しくコードを読めてましたか?
「(500未満)」という文字列が表示されるのは、引数valueが奇数の場合のみですし、「指定した引数は奇数です。」が表示されるのも、引数valueが奇数の場合のみです。
よくよく読めば、インデントが正しくなくて、プログラムは正しく動作します。ただし、人間は勘違い(読み間違い)をしてしまうかもしれません。そうなった場合、このロジックを修正する際に、あやまった修正をしまうかもしれません。
このような読み間違いを起こさせないために、インデントは正しく書くようにしましょう。
インデントのつけかた
インデントの重要性がわかったところで、どのようにつけるかです。
インデントは半角スペース4個分、あるいはタブでつけるの一般的です。宣言部に対し、処理部分をインデントを1つ下げます。if文などの条件書式は、判定式に対し、処理部分をさらにひとつ下げるような形で書きます。
繰り返し文も同様です。
上記をふまえ、架空の処理を書てみます。処理はあんまり意味のないコードになるので、宣言部と処理部に注目ください。
class Sample {
int type;
public int calc(int a, int b) {
int retValue = 0;
retValue = a * b;
for( int i = 0; i < 5; i++ ) {
retValue = retValue * a;
}
if ( retValue > 1000 ) {
retValue = retValue - 1000;
retValue = retValue + b;
}
return retValue;
}
}
最後に
それでもやっぱりインデントがよくわからない…という場合には、いくつかコードを書いてみて、どなたかに添削をしてもらいましょう。
一人で開発をする場合でも、1年後にソースをみるともはや他人のコードです。「読みにくいコードはバグの温床」この言葉を胸に、読みやすいコードを書いていく癖をつけてもらえると幸いです。