メインコンテンツ

MISRA C++:2008 Rule 6-6-3

The continue statement shall only be used within a well-formed for loop

説明

ルール定義

The continue statement shall only be used within a well-formed for loop. 1

根拠

continue ステートメントを使用すると、コードが不必要に複雑化する可能性があり、これが原因でテスト中に追加のロジックが必要となるため、問題が発生する可能性があります。

Polyspace 実装

ルール チェッカーは、次の場合に continue ステートメントの使用について違反を報告します。

  • 適格でない for ループ、すなわち、ルール 6-5-x に違反する for ループ。

  • while ループ。

トラブルシューティング

ルール違反が想定されるものの、Polyspace® から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。

すべて展開する

このコードの for ループはMISRA C++:2008 Rule 6-5-2に違反しているため、適格ではありません。この例の for ループは適格ではなく continue ステートメントが含まれているため、Polyspace はこの違反を報告します。

#include <cstdint>

uint32_t row, col;

void example()
{
    for (row = 0; row <= 10; row++) {
        for (col = 100; col != 10; col -= 4) {
            //...
			continue;		//Noncompliant
        }
    }
}

チェック情報

グループ: Statements
カテゴリ: 必要

バージョン履歴

R2013b で導入


1 All MISRA coding rules and directives are © Copyright The MISRA Consortium Limited 2021.

The MISRA coding standards referenced in the Polyspace Bug Finder™ documentation are from the following MISRA standards:

  • MISRA C:2004

  • MISRA C:2012

  • MISRA C:2023

  • MISRA C++:2008

  • MISRA C++:2023

MISRA and MISRA C are registered trademarks of The MISRA Consortium Limited 2021.