すいません。Cの質問です。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
初見さん

すいません。Cの質問です。

#1

投稿記事 by 初見さん » 8年前

以前質問させていただいたのですが、言語の指定がないとのことでしたので、C言語での質問とさせていただきます。

switch文だと、case1.2.3.....100みたいな感じで、任意の数字までを順番に羅列しないといけないのですが、1~20まではAを表示するプログラム、21~50まではBを表示するプログラムと言った感じで、まとめて自分で範囲を決めて、動作を分割、統一できないでしょうか?

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: すいません。Cの質問です。

#2

投稿記事 by みけCAT » 8年前

初見さん さんが書きました:以前質問させていただいたのですが、言語の指定がないとのことでしたので、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になるので、これは常に真になります。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

初見さん

Re: すいません。Cの質問です。

#3

投稿記事 by 初見さん » 8年前

伝説のハッカーさん、ありがとうございます!最近switch文を習ったもので、頭の中ではswitch文が最適としか考えていませんでした^^;
助かりました!!

返信

“C言語何でも質問掲示板” へ戻る