Programmierkurs
für Naturwissenschaftler/innen

インデント (字下げ)

インデント (字下げ) とは、行の先頭に適切な空白を入れることで、プログラムを読みやすくする手法のことである。

「プログラミングする」という目的だけに限れば、インデントについては知らなくてもプログラミングすることはできる。 しかし、インデントを使うことでプログラムが読みやすくなり、構造も把握しやすくなる。 こればバグ混入の可能性を減らすという意味で大変重要である。

具体的には、以下のようになる。

let sum = 0;
for (let i = 1; i <= 10; i++) {
  sum += i;
  console.log(sum);
}

3 行目と 4 行目の先頭に空白が入っている。 文法的に言えば、これらの空白は無くても問題ない。 しかし、これらが無いとどの部分が for で繰り返される部分なのか把握しにくくなる。 この程度の短いものであればまだ良いが、これが長くなったり複雑になったりすると、混沌としてくる。

ある程度以上のエディターにはたいてい、自動もしくは半自動で適切なインデントを挿入する機能がついているので、それを利用するのがよい。

字下げの文字数は様々な流儀がある。 このテキストでは 2 文字になっている。 4 文字の場合や、まれに 8 文字の場合もある。

let sum = 0;
for (let i = 1; i <= 10; i++) {
  for (let j = 0; j < 10; j++) {
    for (let k = 0; k < 10; k++) {
      sum += i;
      console.log(sum);
    }
  }
  if (i == j) {
    // ...
  }
}

このように書くと、次のような構造が分かりやすくなる。

let sum = 0;
for (let i = 1; i <= 10; i++) {
for (let j = 0; j < 10; j++) {
for (let k = 0; k < 10; k++) {
sum += i;
console.log(sum);
}
console.log("Some message");
if (i == j) {
// ...
}
}
}

これをインデントなしで書くとこうなる。

let sum = 0;
for (let i = 1; i <= 10; i++) {
for (let j = 0; j < 10; j++) {
for (let k = 0; k < 10; k++) {
sum += i;
console.log(sum);
}
console.log("Some message");
if (i == j) {
// ...
}
}
}

こうなると、どの for がどこで終わっているか非常に分かりにくい。