【C言語】
switch文の
caseラベルで字下げするな
~深い字下げは良くない~

■この記事の概要

この記事では、
C言語のswitch文でcaseラベルを使用する際の
字下げ(=インデント)の有無について解説しています。
字下げを推奨しない理由や、
より読みやすく効率的な書き方を例示しています。
また、clang-formatを活用して自動整形する方法も
紹介しています。


■caseラベルで字下げあり(非推奨)

#include <stdio.h>
char 	*single(int input){
	switch(input % 5){
		case	4:	
			return "四";
			break;
		case	3:	
			return "参";
			break;
		case	2:	
			return "弐" ;
			break;
		case	1:	
			return "壱" ;
			break;
		default:	
			return "零" ;
			break;
	}
}
int main(void){
    for(int i = 0;i<10;i++){
        printf("%s\n",single(i));
    }
}

字下げが嫌いな人は 
linux の clang-format コマンドを
使ってみて下さい。

使い方の例:$clang-format source.c


■caseラベルで字下げ無し(推奨)

#include <stdio.h>
char *multi(int input){
	switch(input % 5){
	case	4:	return "四";
	case	3:	return "参";
	case	2:	return "弐" ;
	case	1:	return "壱" ;
	default:	return "零" ;
	}
}
int main(void){
    for(int i = 0;i<10;i++){
        printf("%s\n",multi(i));
    }
}

ぱっと見ただけで瞬間的に理解できませんか?

筆者が推奨するswitch文のスタイル
(1)caseラベルで字下げをしない
(2)表のように書ける時はマルチステートメント
(3)必要なければbreakは省略

参考:マルチステートメント

プログラム言語 C の推奨されるスタイルとコーディング規範 8.単文