ステートメントのインデントが正しくありません
ステートメントのインデントが間違っていることによって、それがブロックの一部として表示される
説明
この欠陥は、ステートメントのインデントが if
、else
、またはその他のブロックの一部として表示されるが、並べ替えや中かっこの欠如によって実際にはステートメントがブロックの外側に配置される場合に発生します。
リスク
開発者またはレビュー担当者がインデントに基づいて間違ってステートメントとブロックを関連付けることによって、プログラム ロジックに関する間違った前提につながる可能性があります。
以下に例を示します。
if(credentialsOK()) login=1; setCookies();
setCookies();
は if
ブロックの一部ではありませんが、インデントがそうでないことを示唆しています。修正方法
ステートメントをブロックの一部にするには、ステートメントがブロックに関連付けられた中かっこ内に存在することを確認します。ブロックの範囲を特定するには、[ソース] ペインで、開いている中かっこをクリックします。
if
、else
、または while
ステートメントに中かっこに続く条件が含まれていない場合は、セミコロンまでの実行パス上の次の行のみが if
、else
、または while
ブロックの一部と見なされます。後続の行をブロック内に含めるには、その行を中かっこでラップします。
たとえば、前述の例で、両方のステートメントを if
ブロック内に含めるには、以下を使用します。
if(credentialsOK()) { login=1; setCookies(); }
例
結果情報
グループ: 適切な手法 |
言語: C | C++ |
既定値: オフ |
コマンド ライン構文: INCORRECT_INDENTATION |
影響度: Low |
バージョン履歴
R2020a で導入