メインコンテンツ

AUTOSAR C++14 Rule A6-4-1

A switch statement shall have at least two case-clauses, distinct from the default label

説明

ルール定義

A switch statement shall have at least two case-clauses, distinct from the default label.

根拠

case 句がない switch ステートメントは冗長です。case 句が 1 つだけ含まれる switch ステートメントをより明確に表現するには、if ステートメントを使用します。

Polyspace 実装

このルール チェッカーは、default 句を別にして、case 句が 2 個未満の switch ステートメントに対して違反を報告します。これは、case 句が存在しない場合にも当てはまります。

	switch (x) {	//Noncompliant         
		default:
                   //...            
			break;
	}

トラブルシューティング

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

すべて展開する

この switch ステートメントには default 句とともに含まれている case 句が 1 つであるため、Polyspace は非準拠として switch ステートメントにフラグを設定します。

void example(int x)
{
	switch (x) {	//Noncompliant
		case 0:
			break;          
		default:            
			break;
	}
}

同じコードを if ステートメントの形式で表現すると、ルール違反を回避できます。

void example(int x)
{
	if (x == 0)
	{
		//...
	}
	else
	{
		//...
	}
}

チェック情報

グループ: ステートメント
カテゴリ: Required、Automated

バージョン履歴

R2019a で導入