ページ 11

インデントについて

Posted: 2012年8月05日(日) 04:16
by atori
ゲームプログラミングには直接関係ないことです。

for文の{}をどう書くかとか、処理が一行の時は{}を略すかどうかといった、各個人で少しばかりプログラムの書き方が異なることがよくあるとおもいます。

私はswitch~case文でどのようにインデントするべきなのか迷っています。

ケース1(私の書き方)

コード:

switch(data)
{
    case 0:
        break;

    case 1:
        break;

    default:
        break;
}
ケース2(知り合いの書き方)

コード:

switch(data)
{
    case 0:
    break;

    case 1:
    break;

    default:
    break;
}
私的にはcase内の処理は字下げしたほうが見やすくなると思うのですが、正しいのはどちらになるのでしょうか?
みなさんはどのように書いているの知りたくなり、このトピックを立てました。よろしくお願いします。

Re: インデントについて

Posted: 2012年8月05日(日) 05:17
by jay
多分「これが絶対正しい」なんてものはないと思いますけれど…
「プログラムコードの書き方」と言うのはその場所毎のルールで決まるものだそうで…
(インデントの仕方にまでルールがあるのかどうかはアレですが…)

ちなみに手もとの参考書ではみんなケース1の書き方になってましたね
僕もケース1の書き方で書きます、特に指定が無い限りは

Re: インデントについて

Posted: 2012年8月05日(日) 07:17
by beatle
ケース3

コード:

switch(data)
{
case 0:
    break;

case 1:
    break;

default:
    break;
}
僕はこんな感じですね。caseはラベルなので先頭に書きます。
vimで書いていても自動でこんなインデントになるので、設定をいじる手間が省けて良い感じです。

Re: インデントについて

Posted: 2012年8月05日(日) 08:16
by nil

コード:

switch(data){
case 0:
    break;
 
case 1:
    break;
 
default:
    break;
}
僕はこうですね。
{}は同じ行に書く派です。

Re: インデントについて

Posted: 2012年8月05日(日) 08:39
by へろりくしょん
私はケース2ですね。

ちなみに、case 文をブロックで囲む場合は

コード:

switch()
{
	case 0:{
	}break;

	case 1:{
	}break;
}
とします。


case ラベル、default ラベルは、switch() の直下のブロックの中でのみ有効ですので、switch() 文にぶら下げる形で1段掘り下げます。
また、case - break; は、基本的に対になってワンセットだと思ってますので、深さは揃えます。

VS搭載のエディタだと毎回修正が大変ですが、必ずこうします。

Re: インデントについて

Posted: 2012年8月05日(日) 20:54
by atori
やはり色々なスタイルがあるようですね。

見やすいプログラミングを心がけようと思えば、最初に命名規約(インデントまで命名規約というかはわかりませんが・・・)を明確にしておくのがベストのようです。

どうでも良い質問にお付き合いいただきありがとうございました。