-
条件分岐が多い為、Swichを使用したいのですがいくつかのパターンは同じ処理となるためCaseにまとまるように配置したい考えです。
イメージとしては
Switch(変数名)
Case=「○○か▲▲か××」のいずれかと同じなら
Case=「□□か★★」のいずれかと同じなら
・
・
・
Defalt case
End
としたいです。
「OR」 や 正規表現で「|」を使ってみましたが配置が悪いのかうまく動作してくれません。
全てのパターンでCaseを配置すると30パターン以上になるのでどうにかまとめたいです。
解決方法がありましたらご教示ください。
よろしくお願いいたします。
-
switch、case文では複数条件による集約は難しいように思います。
if文であれば可読性・メンテナンス性ともに低下するものの、以下の記法でOR/ANDによる集約が可能です。
if分岐(変数名を%Var%とする)
最初のオペランド:%Var = “XX” OR Var = “YY”%
演算子:と等しい(=)
2番目のオペランド:TRUE
これにより%Var%がXXまたはYYの場合に分岐の中の処理が行われるようになります。
このような分岐を条件ごとに複数作ることで、希望する処理にはなるものと思います。
参考になれば。
-
追記です。
Switch文にて同様の分岐を作成できました。
手順を以下に記載します。
使用する変数:%Var%
前提:分岐したい条件となる%Var%には、この処理以前で値が入っているものとします
手順:
1. Switch分岐を配置し、「チェックする値」に「TRUE」を設定
2. Case文を配置し、「演算子」に「と等しい(=)」、「比較する値」に「%Var = ‘XX’ OR Var = ‘YY’%」を設定
3. Case文の配下に、「%Var%がXXまたはYYの時の処理」を配置していく
4. 同様に別の条件でCase文を記載していく
Case文でのチェックの際、TRUEとOR文の比較を行うことで条件の集約が可能です。
ただこれもIfの場合と同じく、可読性・メンテナンス性は低下します。
他のやり方もあるかと思うので、検討してみます。
-
回答ありがとうございました。
ご教示頂いたフローを組み込んでみた結果、見事に動いてくれました。
これなら30以上必要だったSwitch,Case文が10前後までまとまりそうです。
ご指摘の通り可読性、メンテナンス性に課題は残りますが、30以上の分岐を作っても同じ事が言えると思いますので、フローをもっと簡素に出来ないか検討を重ねたいと思います。
-
-
1 - 2 of 2 回答を表示