ネストされたスイッチを使用する理由
入れ子になったスイッチを使用すると、MATLAB でより複雑な意思決定構造を作成できます。 if-else-if ステートメント、case ステートメント、さらにはループなど、さまざまなロジックを実装できます。
たとえば、ネストされたスイッチを使用して、2 つの変数の値に基づいて出力を決定できます。外側の switch ステートメントを使用して最初の変数を決定し、内側の switch ステートメントを使用して 2 番目の変数を決定できます。
MATLAB の入れ子になったスイッチの構文
MATLAB では、入れ子になった switch ステートメントの構文は次のとおりです。
外部変数のスイッチ
場合 1
内部変数のスイッチ
場合 1
...
場合 2
...
さもないと
...
終わり
場合 2
...
さもないと
...
終わり
MATLAB の入れ子になったスイッチの例
次のコードは、変数 x の値と変数 y の値に基づいて出力を決定する、ネストされた switch ステートメントを定義します。
x = 2 ;
そして = 3 ;
スイッチx
場合 1
スイッチy
場合 1
ディスプ ( '十一' ) ;
場合 2
ディスプ ( 「1、2」 ) ;
さもないと
ディスプ ( 「1、そうでない場合」 ) ;
終わり
場合 2
スイッチy
場合 2
ディスプ ( 「2、2」 ) ;
場合 3
ディスプ ( 「23」 ) ;
さもないと
ディスプ ( 「2、そうでない場合」 ) ;
終わり
さもないと
ディスプ ( 'さもないと' ) ;
終わり
この MATLAB コードは、x と y という名前の 2 つの変数を定義します。 x の値は 2、y は 3 です。次に、ネストされた switch-case 構造を使用して x と y の値を評価します。値に応じて、異なるメッセージが出力として表示されます。この場合、x は 2、y は 3 であるため、コードは 2、3 を出力します。
MATLAB の入れ子スイッチを使用した数学科目の成績計算
次に、MATLAB の入れ子になったスイッチを使用して、生徒の成績に応じて成績を割り当てます。
件名 = '算数' ;
スコア = 85 ;
グレード = 」 ;
件名を切り替える
場合 '算数'
スイッチ 真実
場合 スコア > = 90 && スコア = 80 && スコア < = 89
グレード = 「B」 ;
ディスプ ( 「スコアは 80 ~ 89 の間です。グレード: B」 ) ;
さもないと
グレード = 「C」 ;
ディスプ ( 「スコアは80点未満です。グレード:C」 ) ;
終わり
場合 '英語'
% 英語特有の採点を処理する
さもないと
% 他の科目を扱う
終わり
この MATLAB コードは、指定されたスコアに基づいて数学科目の成績を計算します。このコードでは、ネストされた switch ステートメントを使用して、スコア範囲に基づいて成績を決定します。スコアが 90 ~ 100 の間にある場合、評定は A に設定されます。スコアが 80 ~ 89 の間にある場合、評定は B に設定されます。それ以外の場合、スコアが 80 未満の場合、評定は C に設定されます。コードには、評定とスコアの範囲を表示するための対応する disp() ステートメントも含まれています。
結論
MATLAB でネストされた switch ステートメントを使用すると、複雑な意思決定構造を設計できます。これらにより、外部スイッチのケースに基づいて内部スイッチ ステートメントを条件付きで実行できます。これにより、単一のコード ブロック内で複数の変数と条件を処理できるようになり、コードの可読性と効率が向上します。