2

ファイルを処理test.cしていて、その中の1行のコメントを数えようとしています。

/2つの連続する文字を見つけたら、slcトリガーをに設定しtrueます。

そして、行末に達したら、slcトリガーをに設定する必要がありfalseます。

もちろん\n、文字は1行のコメントの終わりを明確に示しています。

switch (character)
{
    case '\n':
        slc = false; // single-line comment ended
        break;

ただし、\n文字が見つかった場合は、またはのslcいずれtrueかになりますfalse

switch (character)
{
    case '\n':
        if (slc) slc = false; // single-line comment ended
        break;

これらの2つのコードブロックに違いはありますか?

どのように書くべきですか?

4

2 に答える 2

6

最初のフォームを使用します。ifコードの機能に影響を与えず、読みやすさだけに影響を与えるチェックを追加することは、悪い習慣です。コードの意図を曖昧にしない、可能な限り最も簡潔な方法を常に作成する必要があります。この場合、変数は常にであることが意図されているためfalse、単に設定しslc = falseます。

于 2012-11-10T22:28:51.443 に答える
0

一番上のものはトリックを行い、なぜわざわざif

于 2012-11-10T22:30:34.180 に答える