QA・フローを検索する

キーワード入力後[Enter]キーを押すと、検索が実行されます

トップページ Forums Q&A フロー 【フロー】Swichの使い方について

  • 【フロー】Swichの使い方について

     YNMN 更新 1 年, 3 ヶ 月 前 2 メンバー · 4 記事
  • YNMN

    メンバー
    2023年1月24日 at 11:13 AM

    条件分岐が多い為、Swichを使用したいのですがいくつかのパターンは同じ処理となるためCaseにまとまるように配置したい考えです。

    イメージとしては

    Switch(変数名)

    Case=「○○か▲▲か××」のいずれかと同じなら

    Case=「□□か★★」のいずれかと同じなら

    Defalt case

    End

    としたいです。

    「OR」 や 正規表現で「|」を使ってみましたが配置が悪いのかうまく動作してくれません。

    全てのパターンでCaseを配置すると30パターン以上になるのでどうにかまとめたいです。

    解決方法がありましたらご教示ください。

    よろしくお願いいたします。

  • Re-T

    メンバー
    2023年1月24日 at 2:41 PM

    switch、case文では複数条件による集約は難しいように思います。

    if文であれば可読性・メンテナンス性ともに低下するものの、以下の記法でOR/ANDによる集約が可能です。

    if分岐(変数名を%Var%とする)

    最初のオペランド:%Var = “XX” OR Var = “YY”%

    演算子:と等しい(=)

    2番目のオペランド:TRUE

    これにより%Var%がXXまたはYYの場合に分岐の中の処理が行われるようになります。

    このような分岐を条件ごとに複数作ることで、希望する処理にはなるものと思います。

    参考になれば。

    • Re-T

      メンバー
      2023年1月24日 at 3:01 PM

      追記です。

      Switch文にて同様の分岐を作成できました。

      手順を以下に記載します。

      使用する変数:%Var%

      前提:分岐したい条件となる%Var%には、この処理以前で値が入っているものとします

      手順:

      1. Switch分岐を配置し、「チェックする値」に「TRUE」を設定

      2. Case文を配置し、「演算子」に「と等しい(=)」、「比較する値」に「%Var = ‘XX’ OR Var = ‘YY’%」を設定

      3. Case文の配下に、「%Var%がXXまたはYYの時の処理」を配置していく

      4. 同様に別の条件でCase文を記載していく

      Case文でのチェックの際、TRUEとOR文の比較を行うことで条件の集約が可能です。

      ただこれもIfの場合と同じく、可読性・メンテナンス性は低下します。

      他のやり方もあるかと思うので、検討してみます。

      • この返信は 1 年, 3 ヶ 月 前 で  Re-T 変更されました。
      • この返信は 1 年, 3 ヶ 月 前 で  Re-T 変更されました。
      • YNMN

        メンバー
        2023年1月25日 at 9:03 AM

        回答ありがとうございました。

        ご教示頂いたフローを組み込んでみた結果、見事に動いてくれました。

        これなら30以上必要だったSwitch,Case文が10前後までまとまりそうです。

        ご指摘の通り可読性、メンテナンス性に課題は残りますが、30以上の分岐を作っても同じ事が言えると思いますので、フローをもっと簡素に出来ないか検討を重ねたいと思います。

1 - 2 of 2 回答を表示

元の投稿
0 of 0 記事 2018年6月