ホーム

トップ
準備
Become An Xcoder

練習問題0
練習問題1
練習問題2
練習問題3
練習問題4
練習問題5
練習問題6
練習問題7
練習問題8
練習問題9
練習問題10
練習問題11
練習問題12
練習問題13
練習問題14
練習問題15

C言語補習1
C言語補習2
C言語補習3

推薦図書
ブックマーク

最後に

掲示板

Cocoa Docs

自作ソフトいろいろ




修正日: 07/06/20  

C言語補習1  

 switch


 「Become An Xcoder」の中で触れられなかったC言語の仕様の中で、Cocoaを勉強していく上で役に立ちそうなものをいくつか説明します。まずはswitch構文です。Cocoaを習得する上で必ずしも必要ではないのですが、知っているとたまに役に立ちます。

注意

 以下のサンプルは全てCで書いています。サンプルコードを試してみるときは「Become An Xcoder」5章のように「Foundation tools」プロジェクトを作るか、私の「Cで遊ぼう!」を使ってください。サンプルファイルを「Cで遊ぼう!」にドラッグして開いて実行ボタンを押せば、ウィンドウ下部に結果が表示されます。
 あと参考までに二点だけ。
 各Cのファイルの先頭に
  #include
 と書いてありますが、これはCocoaの
  #import
 と同じで、とりあえず書いとけ、のおまじないです。
 もう一つ、各サンプルでは
  printf("文字列");
 というのを使って結果を出力していますが、これはC言語標準の機能でCocoaのNSLog()と似たようなものです。

本題

 switchというのはif構文とよく似た条件分岐を行うのですが、ifはtrueかfalseの二択なのに対して、switchは複数の選択肢を持つことができます。例えばこんな感じ。(サンプルファイル→「Cで遊ぼう!」で実行してみてください)

void whichSeason( int season ) { switch(season) { case 1: printf("春です"); break; case 2: printf("夏です"); break; case 3: printf("秋です"); break; case 4: printf("冬です"); break; default: printf("わかりません> <"); } }


 これは以下のように書くのと同じことです。

void whichSeason( int season ) { if(season==1) printf("春です"); else if(season==2) printf("夏です"); else if(season==3) printf("秋です"); else if(season==4) printf("冬です"); else printf("わかりません > < "); }


 これで大体わかると思いますが、switch()の括弧の中に渡した変数の値を見て、「case ○○:」の○○と一致する場合はその次のコードが実行されます。そしてどれにも当てはまらない場合はdefaultのコードが実行されます。ちなみにdefaultは省略しても構いません。当てはまるcaseが無くてdefaultがない場合は何も実行されません。
 あとbreakというキーワードですが、これも説明するとややこしくなってしまうのですが、ここでは単に、「case :とbreak;の間のコードが実行される」というくくりのために置く、と覚えておいてください。ちなみにbreakを取り去ってしまうとどうなるかは、自分で実験してみてください。

 このようにサンプルを書いてみるとifの方が短くてきれいに見えますが、実際コードを書くときはswitchを使うと処理の流れがわかりやすくなることが多いので、思い出したら使ってみてください。