プロが教える店舗&オフィスのセキュリティ対策術

お世話になっています。よろしくお願いします。
C言語にあるSwitch case文を、Switch Case を使わずに、SwitchCase関数を作りたいのですが、自分にはハードルが高かったように思い、どのようにすればいいのか、具体的にご指南ご教授願えればと思いました。ほかの言語でも応用が利くほうがいいので、ポインタは使わない方向でお願いいたします。
よろしくお願いいたします。

質問者からの補足コメント

  • どう思う?

    情報不足すいませんでした。
    理想を言えば、オリジナルのSwitch Case文と同じなのが理想ですが、引数は、分岐の個数と分岐の条件式。返り値は、各分岐での演算の結果。でどうでしょうか?分岐の条件式は、分岐の個数に応じて設定します。
    また不備があれば、ご指摘願います。
    よろしくお願いいたします

      補足日時:2015/10/13 20:12
  • どう思う?

    回答くださりありがとうございます。
    同等ではなくてもいいので、似たものでということです。
    よろしくお願いいたします

    No.2の回答に寄せられた補足コメントです。 補足日時:2015/10/13 20:14
  • どう思う?

    情報不足すいませんでした。
    引数は、分岐の個数と分岐の条件式。返り値は、各分岐での演算の結果。でどうでしょうか?分岐の条件式は、分岐の個数に応じて設定します。
    また不備があれば、ご指摘願います。
    よろしくお願いいたします

    No.1の回答に寄せられた補足コメントです。 補足日時:2015/10/13 20:16
  • どう思う?

    Caseは、使わないのではなく、引数がいるのでつけたもので、caseを実装可能でしたらお願いします。

    No.3の回答に寄せられた補足コメントです。 補足日時:2015/10/13 20:36
  • うーん・・・

    回答くださりありがとうございます。
    x = switchcase(式0, 定数1, 式1, 定数2, 式2, 定数3, 式3);
    ⇒この形にこだわっているわけではありません。ただ、オリジナルと同機能のものが不可能とのコメントをいただいたので、そういう表現をしました。この形でもいいので、実装できれば、どのようにすればいいのかご教授願います。

    No.4の回答に寄せられた補足コメントです。 補足日時:2015/10/13 21:09
  • うれしい

    回答くださりありがとうございます。
    ソースコード助かります。本当にありがとうございます。
    1つだけ質問させてください。
    プロトタイプ宣言は、この場合どう書けばいいでしょうか?
    x = switchcase(式0, 分岐個数, 定数1, 式1, 定数2, 式2, 定数3, 式3, デフォルト値);
    と書けばいいでしょうか?お願いいたします。

    No.5の回答に寄せられた補足コメントです。 補足日時:2015/10/13 22:16
  • どう思う?

    No5.の回答の補足に抜けていました。一般化したい場合の、プロトタイプ宣言です。つまり、分岐個数がn個の場合をお願いいたします。すると、定数n・式n・・・ということになります。
    よろしくお願いいたします。

      補足日時:2015/10/13 22:23
  • うーん・・・

    誤解を招く書き方をしてしまい申し訳ありません。
    このswitchcaseを、サブルーチンのようにして使いたかったのです。ご指示してくださった書き方だと、あらかじめ分岐の個数がわかっている場合になりますよね。分岐がわからない場合でも対応できるといいなと思っていました。私の最初の書き方がわかっていなかったので、申し訳ありません。こういう場合はどうなるのか(話が変わってしまっているように思います。すいません)、たびたびすいませんがご教授願います。

    No.6の回答に寄せられた補足コメントです。 補足日時:2015/10/13 23:07
  • うーん・・・

    回答くださりありがとうございます。
    実は、switch caseがない言語で開発しています。すると必然的に、if else の連発になります。コードが長くなり、非常にわかりにくく、かつ重いのです。そこで、switchcaseを作ろうと思いました。
    本当はマイナーな言語を出して質問したかったですが、社外秘のところもあるのでかけませんでした。そこである程度知っているC言語の場合、として質問をしました。これが理由です。

    No.9の回答に寄せられた補足コメントです。 補足日時:2015/10/14 19:45

A 回答 (11件中11~11件)

すみません。


情報が少なすぎて、こちらでもどのようにすればいいのか、皆目見当がつきません。

SwitchCase関数とは、どんな引数を取ってどんな値を返す(あるいは値を返さない)関数で、副作用として何が起るのか
くらいは最低限必要です。
この回答への補足あり
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!