- switch_expression は、スカラーまたは文字ベクトルでなければなりません
- case_expression は、スカラー、文字ベクトル、またはスカラーか文字ベクトルの cell 配列でなければなりません。
switch文で同じ処理を複数のcaseで実行したい
72 次查看(过去 30 天)
显示 更早的评论
タイトル通りなのですが、switch文で複数のcaseで同じ処理を実行したいと思っています。
やりかたをググってマトラボのページは見つけられなかったのですが、C言語のページでイメージと似たものがあったので、
●switch文で複数のcaseで同じ処理を実行する
マネして書いてみたところ、
switch abcde
case 'A'
case 'B'
~ AとBの場合に処理したい内容 ~
・・・
実行したら、Aが無視されていました。
switch abcde
case 'A'
~ AとBの場合に処理したい内容 ~
case 'B'
~ AとBの場合に処理したい内容 ~
・・・
と分けて書いたらできますが、無駄な感じがするのでやっぱりまとめたいです。
●switch caseのヘルプページ
https://jp.mathworks.com/help/matlab/ref/switch.html?searchHighlight=switch&s_tid=srchtitle_switch_1
もみていたのですがこのパターンが見当たらず、どう直したら実行されるのかわからなくて質問をさせていただきました。
わかる方がいらっしゃいましたら、お手数をおかけいたしますがご教示いただけますと幸いです。
どうぞよろしくお願いいたします。
0 个评论
采纳的回答
Atsushi Ueno
2023-3-16
for abcde = 'ABC'
fprintf('abcde = ''%c''\n',abcde);
switch abcde
case 'A'
disp('~ abcde==''A'' の場合に処理したい内容 ~');
case 'B'
disp('~ abcde==''B'' の場合に処理したい内容 ~');
otherwise
disp('~ その他の場合 ~')
end
end
>どう直したら実行されるのか
下記の様な書き方で実行可能です。比較対象を複数個に出来ます。ドキュメントには下記の通り記載されています。
for abcde = 'ABC'
fprintf('abcde = ''%c''\n',abcde)
switch abcde
case {'A','B'} % case_expression を文字ベクトルの cell 配列にする
disp('~ abcde==''A'' または abcde==''B''の場合に処理したい内容 ~');
otherwise
disp('~ その他の場合 ~')
end
end
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!