初見さん さんが書きました:以前質問させていただいたのですが、言語の指定がないとのことでしたので、C言語での質問とさせていただきます。
質問ですのことですね。
普通にそっちに返信でもよかったと思いますが…。
初見さん さんが書きました:switch文だと、case1.2.3.....100みたいな感じで、任意の数字までを順番に羅列しないといけないのですが、1~20まではAを表示するプログラム、21~50まではBを表示するプログラムと言った感じで、まとめて自分で範囲を決めて、動作を分割、統一できないでしょうか?
switch文ではなくif文を使うといいでしょう。
コード:
/* xに分岐に使う値が入っているとする */
if (1 <= x && x <= 20) {
/* Aを表示するプログラム */
} else if (21 <= x && x <= 50) {
/* Bを表示するプログラム */
}
以下のように書くと、
上手く動きません。
コード:
/* 間違ったサンプル */
/* xに分岐に使う値が入っているとする */
if (1 <= x <= 20) {
/* Aを表示するプログラム */
} else if (21 <= x <= 50) {
/* Bを表示するプログラム */
}
1 <= x <= 20は、(1 <= x) <= 20と解釈されます。
1 <= xは、xが1以上の時は1、1未満の時は0になるので、これは常に真になります。
[quote="初見さん" id=3,19283,145964]以前質問させていただいたのですが、言語の指定がないとのことでしたので、C言語での質問とさせていただきます。[/quote]
[url=http://dixq.net/forum/viewtopic.php?f=3&t=19276]質問です[/url]のことですね。
普通にそっちに返信でもよかったと思いますが…。
[quote="初見さん" id=3,19283,145964]switch文だと、case1.2.3.....100みたいな感じで、任意の数字までを順番に羅列しないといけないのですが、1~20まではAを表示するプログラム、21~50まではBを表示するプログラムと言った感じで、まとめて自分で範囲を決めて、動作を分割、統一できないでしょうか?[/quote]
switch文ではなくif文を使うといいでしょう。
[code=c]
/* xに分岐に使う値が入っているとする */
if (1 <= x && x <= 20) {
/* Aを表示するプログラム */
} else if (21 <= x && x <= 50) {
/* Bを表示するプログラム */
}
[/code]
以下のように書くと、[b]上手く動きません。[/b]
[code=c]
/* 間違ったサンプル */
/* xに分岐に使う値が入っているとする */
if (1 <= x <= 20) {
/* Aを表示するプログラム */
} else if (21 <= x <= 50) {
/* Bを表示するプログラム */
}
[/code]
1 <= x <= 20は、(1 <= x) <= 20と解釈されます。
1 <= xは、xが1以上の時は1、1未満の時は0になるので、これは常に真になります。