インデンテーションについての約束事
プログラミングⅠではインデンテーションに関して次のような約束事を採用する。
- 原則として、一行には一つしか文は書かない。
ただし、次の例のように密接に関連している文の場合はこの原則にこだわる必要はない。
- プロンプト(入力をうながすメッセージ)を出力するprintf文とscanf文
- 関連する変数への代入文
- ブレースのなかは、外よりも4または8字分を字下げする。
(ただし、首尾一貫していれば、4や8という数字にこだわる必要はない。)
- ただし、case〜:やdefault:などのラベルは別
- タブ文字を使わずに空白文字で字下げする。
-
エディタの設定で、「タブをスペースに変換して挿入」というチェック項目が大抵のエディタにあるはず。
(MkEditorの場合)
-
タブ文字を使った場合は、8字分の空白と解釈する。
-
自分の使っているエディタでタブの設定方法がわからない場合は、
「メモ帳」または Webブラウザで開いて確認する。
- q開きブレースはifやswitch, do, while, forなどのキーワードと
同じ行に改行せずに書く。
- 閉じブレースはifやswitch, do, while, forなどのキーワードのはじめと列をそろえて、
独立した行に書く。
- ただし、elseや do〜whileの whileは閉じブレースと同じ行に続けてよい。
(というより、同じ行に続ける方がよい。)
-
ifやforなどでは、選択されたり、
繰り返したりされる文が一つだけの場合も、ブレースに囲む。
教科書の例は必ずしもそうなっていないので、
特に注意する。
- ただし、elseのあとにすぐ ifが続く else ifというかたちは
除く。
- 関数本体の開始を表す開きブレースは、関数頭部のあとに続けて改行せずに書くか、
改行して1列目に書く。
例:
4字の字下げを採用した場合
int main(void) { /* ← 6, 次の行の1列目でもよい */
int i, j; /* ← 1 */
for (i=0; i<10; i++) { /* ← 3 */
for (j=0; j<10; j++) { /* ← 1 */
printf("*"); /* ← 5 */
} /* ← 4 */
printf("\n"); /* ← 1 */
} /* ← 4 */
return 0; /* ← 1 */
} /* ← 4 */
8字の字下げを採用した場合
int main(void)
{ /* ← 6, 前の行でもよい */
int i, j; /* ← 1 */
for (i=0; i<10; i++) { /* ← 3 */
for (j=0; j<10; j++) { /* ← 1 */
printf("*"); /* ← 5 */
} /* ← 4 */
printf("\n"); /* ← 1 */
} /* ← 4 */
return 0; /* ← 1 */
} /* ← 4 */
Koji Kagawa