ページ 11

switchの条件式について

Posted: 2016年5月06日(金) 21:12
by なつかぜ
switchの条件式についてです。
switch()の()に入る条件式で
~は1、~は2と複数区分を作りたいです。

よろしくお願いします。

Re: switchの条件式について

Posted: 2016年5月06日(金) 21:19
by box
何がしたいのか、ちょっとわかりかねます。

Re: switchの条件式について

Posted: 2016年5月06日(金) 22:00
by なつかぜ
返信ありがとうございます。
例えば
0~100は1
101~300は2
500~650は3
という風に区別をしたいということです。

Re: switchの条件式について

Posted: 2016年5月06日(金) 22:04
by みけCAT
使用しているプログラミング言語は何ですか?
それはswitchでないとダメなのですか?
if文ではいけないのですか?
The XY Problemに気をつけましょう。

Re: switchの条件式について

Posted: 2016年5月06日(金) 22:07
by みけCAT
まあ、作りたいなら作ればいいでしょう。
以下はC言語の場合の例です。

コード:

#include <stdio.h>

int main(void) {
    int x = 0;
    if (scanf("%d", &x) != 1) {
        puts("input error");
        return 1;
    }

    switch(  0 <= x && x <= 100 ? 1 :
           101 <= x && x <= 300 ? 2 :
           500 <= x && x <= 650 ? 3 :
           -1) {
    case 1:
        puts("1");
        break;
    case 2:
        puts("22");
        break;
    case 3:
        puts("333");
        break;
    default:
        puts("?????");
        break;
    }

    return 0;
}

Re: switchの条件式について

Posted: 2016年5月06日(金) 22:17
by なつかぜ
みけCATさん、ありがとうございます。

コードについてなんですが
switchの()内最後のー1は何を意味しているのですか?
またその他は10という(switch文のdefaultのような)式は作れますか?

Re: switchの条件式について

Posted: 2016年5月06日(金) 23:14
by box
なつかぜ さんが書きました: switchの()内最後のー1は何を意味しているのですか?
1, 2, 3のいずれでもない、という意味だと思います。つまり
なつかぜ さんが書きました:またその他は10という(switch文のdefaultのような)式は作れますか?
ってこと。くだんのswitch文で-1のところを10にすれば解決すると思います。
ところで、switch文のそういう使い方は見たことがありません。むりやりswitchを使わなくてもよいのでは?

Re: switchの条件式について

Posted: 2016年5月06日(金) 23:31
by みけCAT
box さんが書きました:
なつかぜ さんが書きました: switchの()内最後のー1は何を意味しているのですか?
1, 2, 3のいずれでもない、という意味だと思います。つまり
なつかぜ さんが書きました:またその他は10という(switch文のdefaultのような)式は作れますか?
ってこと。くだんのswitch文で-1のところを10にすれば解決すると思います。?
その通りです。

Re: switchの条件式について

Posted: 2016年5月06日(金) 23:54
by なつかぜ
問題解決できました。
ありがとうございました。