FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

最後のswitch文

switchとは 変数と定数の比較によって処理が行われる

この文章はそのまま鵜呑みで覚えましょうと書いてありました。
なのでそのままのせます!(おい
ここ!テストにでますよー。ノートとっておいてくださいねー。

そして「switch文は文字型の変数文字型の定数比較もできる。」

こう説明がありました。
変数と定数の比較で処理を行うのはわかったけど文字型もできるってことなのか。

んで・・・文字型ってなに?
stringででてきた文字列とは別物っぽいんだけど・・・
もちろん調べました

文字型とは「文字を代入」できるものです!!!
・・・・・イヤ、そんなの検討ついてたし('A`)
文字列だって文字いれてなかった・・・?string型との差はナニ?
ここで注目すべきは。「文字を代入」の文字という単語です
stringで出てきた「文字列」と「文字」は明確に違うそうで
C言語で「文字」といったらあくまで「1文字」だけだそうです。
文字列をstring型といったように「文字型」といわれる文字をいれる型も存在するのです!
その名もchar型というそうですよ。

そして文字列は"  "でくくっていましたよね?
それに対して文字は'  '(シングル)でくくる決まりがあるようです

string型 "文字列"(単語や文章を入力可能
char型  '文字' (あくまで1文字のみ

ここをごっちゃにしないように注意しなきゃいけないようですね。

ではそれを踏まえて例題に!

   
char i;
i = 'A';             
   
switch(i)
{
   case 'A';
    -------
    -------
    break;
   case 'B';
    -------
    -------
    break;
   default;
    -------
    break;
}


とあった場合、caseで判断される定数は'A'か''B'という文字になります。
もちろん今回はcase'A'にとんでその下が実行されbreakでぬける!となりますね!
このように文字型にも使用できるということを覚えておくといいそうです。

あともうひとつ!!
こんな例題を見てください

char i;
i = 'A';

switch(i)
{
    case 'A';
     -------
     -------
    case 'B';
     -------
     -------
     break;
    default;
     -------
     break;
}


さっきの例題にそっくりですが違う場所が1箇所あります。
間違い探し的な感じですがどこだかわかりますか?

ちなみにこれを実行すると結果はcase'A'を実行した後になんとcase'B'も実行してから抜けます。
この結果をきいたら間違いの場所に気づきましたか?
ソウデス!case'A'の最後に break; がないのです。
break;がないとここでかっこから抜ける。つまりはswitch文を抜ける という作業がされずに次のcaseになだれ込んでしまうわけです

break;というのは忘れずに記入するようにしましょう!

とは言いましたが、breakを使わずに次のcaseになだれ込むような書き方をすることもあるそうです。
それはこの例を見てください

char i;
i = 'a';

switch(i)
{
     case 'a';
     case 'A';
      -------
      -------
     case 'B';
     case 'B';
      -------
      -------
      break;
     default;
      -------
      break;
}


この例題ではまずswitch文のaは最初のcaseの'a'と一致するのでここに飛びます。
ですが処理は何も書かれていないうえにbreakもないのでそのまま次のcase'A'の処理が実行されます。
このように大文字でも小文字でも同じ処理を行いたい場合 にはbreakを使わない書き方をするようです。

いやー。今回出てきた文字 'A' がどうしても顔文字に見ちゃうのは私だけでしょうか・・・

ふぅ。。。switch文もこれにて終了!
明日からはwhile文にうつります!
がんばるぞー('A`)おー。

コメントの投稿

非公開コメント

プロフィール

しー

Author:しー
*使用ソフト*
メタセコ
Blender
modo

カレンダー
09 | 2018/10 | 11
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
WEB拍手
カテゴリ
最新コメント
検索フォーム
リンク
ブロとも申請フォーム

この人とブロともになる

いらっしゃいませ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。