修正日: 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を使うと処理の流れがわかりやすくなることが多いので、思い出したら使ってみてください。