【C言語】switch文のcaseラベルで字下げしますか?(indent)

switch(字下げしますか?){

■if文(非推奨)

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

(input % 5)が何度も出てきて
ぱっと見ただけで瞬間的に理解できない。


■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));
    }
}

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

筆者はcaseラベルで字下げをしません。

さらに
表のように書ける時は、
マルチステートメントで記述して、
必要なければbreakも省略します。

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

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