int型以外でのケース条件

[戻る]
ナナ 2002/06/04(火) 16:13:23
大変基本的な質問なのですが、int型以外の値で
switch文のようにケースに分けて条件を書く方法はないのでしょうか?
全てをif文で判断していると凄く不恰好になってしまうので...。

例えば、char Dataに何かアルファベットが入っており、
Aなら〜、Bなら〜という風に条件分岐をしたいのです。

う〜ん、恥ずかしい質問で申し訳ないですがお願いします。

PAI 2002/06/04(火) 16:26:20
charの場合は '(シングルクォート)でくくってswitchでOKです。


char test[] = "abcdefg";

switch( test[0] ){

case 'a';
    // ・・・
case 'b';
    // ・・・
}

みたいな感じで、シングルクォートでくくるとcharのリテラルになるので、
(同時にcharはintに暗黙に変換されるので。)いけます。

大文字のアルファベットしか入ってないことがわかってるなら、

int i = Data-'A';

とすれば、Aからの距離も出せます。

ナナ 2002/06/04(火) 19:13:55
[[解決]]
ありがとうございます!
凄く基本的なことだったのですね。
これで実現いたしました。

古いスレッドには追加発言できません。