• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:switch の範囲指定)

switch文で範囲指定する方法とは?

麻野 なぎ(@AsanoNagi)の回答

回答No.6

直接の回答ではありませんが、こういうロジックが必要な場合、処理A、処理B、処理Cが実は数字が少し違うだけで、実質的に同じ処理をしているというケースがよくあります。 その場合、各処理のほうを見直すと、実は、前段の分岐処理は不要になるというケースもそこそこあります。

mana5867
質問者

お礼

四則演算をしてもう少し小さな数にしたりとかですね 1の回答者様のように今回の場合は25で割れば4っつの処理をするのは簡単ですからね

関連するQ&A

  • 変数の範囲によって場合わけしたいのですが、switchで可能でしょうか?

    変数の範囲によって場合わけしたいのですが、switchで可能でしょうか?あるいは、ifでないとだめでしょうか?やりたいのは、変数を$aとすると、 0<a<1 なら、処理1 1<a<2 なら、処理2 というのが10個くらいあります。ifだと長くなるのでできればswitchでやりたいのですが、可能でしょうか?条件をどうやって書けばいいのでしょうか?リファレンスを見ても乗っていませんでした・・ <?php switch ($a) { case (0<$a<1): 処理1; case (1<$a<2): 処理2; ・ ・ ・ } ?> という書き方はできるのでしょうか?あるいは不可なら、簡単な方法はあるでしょうか?

    • ベストアンサー
    • PHP
  • switchでの条件分岐の書き方を教えて下さい。

    こんにちは。 いつもお世話になっております。 またわからない事が出てきてしまったので、どうか ご指導よろしくお願いいたします。 簡単な検索機能をつくりたくて、思考錯誤 しております。 フォームからPOSTで受け取る変数の数は 10個あります。 それぞれの変数が ””でなければ、受け取った 変数を元に、SQL文がかわってゆく。 という事がしたいのです。 10個もあるので、たとえば 変数が$_POST["a"]から$_POST["j"]まであった時に if文を使うとすると if($_POST["a"] != "" && $_POST["b"] == "" && $_POST["c"] != "" (略)){ $stt = "検索したい予定のSQL文1"; }elseif($_POST["a"] == "" && $_POST["b"] != "" && $_POST["c"] != "" (略)){ $stt = "SQL文2"; ・ ・ ・ と言う風に、ものすごいにはなると思うのですがifを つなげていけば良いのかな、と思うのです。 PHPの基礎HPなどを検索してみると、SWITCHを 使えば、多岐に分岐するIF文を、見やすくできる、 と書いてあったので、使ってみたいのですが、書き方の 説明によると switch(変数){ case 値1:  条件を満たす時の処理1 break; case 値2:  条件を満たす時の処理2 default: } と紹介してあったのですが、今回わたしがしたい場合の 条件分岐だと、変数は一つではなく、ある変数は空でこの変数は値が何か入っていて、またもう一つの変数は 空で・・・の時は、このSQL文、というように させたい場合には、switchでどうかけばよいのか わからないのです。 それとも、こういう条件分岐の場合は、switchを 使うべきではないのでしょうか・・・? どうかご指導よろしくお願いいたします。  

    • ベストアンサー
    • PHP
  • switch文について

    お世話になります。switch文について教えてください。 分岐の条件を複数使用することは出来ますか。 たとえば switch(a) [ case "1": if (x == "0") { document.write(1x0); } else if (x == "1") { document.write(1x1); else { document.write(1x); break; } case "2": if (x == "0") { document.write(2x0); } else if (x == "1") { document.write(2x1); else if (y == "0") { document.write(2y0); else { document.write(2x); break; ] という構文は可能ですか。 case 2でx yの二分岐しても可能ですか。 教えてください。

    • ベストアンサー
    • Java
  • 条件分岐 if(elseif) switchの実行速度

    条件分岐に if switchがありますが、 ifパターン ============================== if ( $a = 1) {   処理A } elseif ($a = 2) {   処理B } ============================== switchパターン ============================== switch($a){ case '1':   処理A break; case '2':   処理B break; } ============================== 実際はもっと複雑ですが、どちらのほうが実行速度が速いのでしょうか。

    • ベストアンサー
    • PHP
  • switch文caseについて

    switchのcaseについてですが、数字を直接記述せずに、const変数に値を代入して使用出来ますか? 例) const int A = 1; const int B = 2; switch(suuti){ case A: 処理; break; case B: 処理; break; } コンパイルすると、「case 式は、整数型定数でなければなりません。」と出てきてしまうのですが、直接数値を記述しないといけないのでしょうか? よろしくお願いします。

  • この(C言語)ダブルポインタのアルゴリズムを教えて!

    main(int argc, char *argv[]) while(--argc > 0) { if(**(++agv) == '-') { switch(argv[0][1]){ case 'a'; オプションaに対する処理; break; case 'b'; オプションbに対する処理; break; case 'c'; オプションcに対する処理; break; default;; abc 以外のオプションが入力された時の処理; } } else break; } オプション以外のパラメータが入力されたときの処理; 特に ’**’の部分や argv[0][1]の意味が解かりません。 よろしくお願い致します。

  • phpのswitch文で必ずdefault処理さる

    phpでswitch文を使って変数の値に応じて処理を変えたいのですが、なぜか常にdefault処理をされてしまいます。 htmlの別ファイルから例えば"テスト,テスト2,テスト3"という文字列を受け取って strtok()を使って、$aに"テスト", $bに"テスト2", $cに"テスト3"と入るようにしました。 それで$aには"テスト"の文字列が入っているはずなので、 switch($a){ case "テスト":~~/処理 break; default:~~//処理 break; } と書いた場合、case "テスト" の処理がされるはずだと思うのですが、 なぜかdefaultの場合の処理がされてしまいます。 gettype($a); で$aの型を調べると、string型になっていおり、 $aの中身を echo "a: {$a}"; で確認すると 「a: テスト」と表示されます。 しかし、if文で if($a == "テスト"){ echo "a match テスト"; } else{ echo "not match"; } のように書いてみると、 「not match」が表示されます。 この理由が分かりません。  この理由が分かる方はいらっしゃいますか? 解決策を教えてください。 また、もしかしたら$aにはecho や print()では表示されない文字が 付属しているのかもしれないと考えていますが、 echoやprint()で表示されない文字を表示させる方法はありますか?

    • ベストアンサー
    • PHP
  • templateにの指定に従ったswitch

    以下のような感じで、template TTの種類によって処理を変えたいのですがうまくいきません。 どの様にすればいいのでしょうか? 宜しくお願いします。 template<class TT> void vector3<TT>::GetMemberList(char *str,const int bufsize,char *format=0){  int i,j;  if(!format){   switch(TT){    case int:     format=new char("%d");     break;    case double:     format=new char("%lf");     break;   }  } }

  • switch文について

    VC++6.0 SDIです。 CString型の変数に、コンボボックスのデータを所得し、 選択したコンボボックスの内容に応じて異なった処理をさせたいのですが、どうしたら良いでしょうか? 私は、下記コードで出来るかな??ってイメージしていたのですが・・。 下記コードを改造してなんとか・・・ という拘り無く、コンボボックスの内容によって違う処理をする分岐の一般的な方法が知りたいと思っています。 よろしくお願い致します。 CString A; GetWindowText(A);  switch(A){  case '文字列1':{  処理  break;  }  case '文字列2':{  処理  break;  } ・ ・ ・  default :{  処理 break; } }

  • switch文について

    独学でjavaの勉強をしているのですが、switch文が本のとおりに入力しても エラーがでて困っています。どこが間違っているのかわかりません。 ちなみにプログラム内容は class bunki2{ public static void main(String args[]){ int a; a=1; switch (a) { case1:System.out.println("変数aの値は1です。"); break; case2:System.out.println("変数aの値は2です。"); break; case3:System.out.println("変数aの値は3です。"); break; } } } です。 これでコンパイルしようとすると’case’、’default’、または’}’がありません。とでます。 なぜできないのか教えてください。

    • ベストアンサー
    • Java