C言語のswitch文はcaseで指定した値と一致した時に処理を行うための構文です。
C言語での条件分岐-switch文
switch文はcaseで指定した値と一致した時に処理を行うための構文です。
switch文の構文
switch文の構文は以下のように指定値を分岐させたいラベルで
指定します。
switch( 指定値 ){
case 1 :
処理1;
処理2;
break ;
case 2 :
処理3;
処理4;
break ;
default :
処理5;
処理6;
break ;}
switch文は条件分岐したい分のcaseを記述することができます。
また、caseのラベルの最後には「:」を付けます。
条件分岐の区切りは「break」で区切ります。
「default」は「これまでにcaseに書かれた条件以外の時」の意味です。
具体的なソースのサンプルは
switch( i ){ case 0 : ret = OK ; break ; case -1 : ret = NG ; break ; case -2 : ret = DB_EEROR ; break ; default : ret = EEROR ; break ; }
のように使います。
また、if文の「OR条件(||)」はcaseを複数個列挙して表現します。
switch( i ){ case 0 : //iが0または case 1 : //iが1または case 2 : //iが2の時 ret = OK ; break ; case -1 : ret = NG ; break ; case -2 : ret = DB_EEROR ; break ; default : ret = EEROR ; break ; }
注意しないといけないのは「break」までが1つの条件内の処理に
なるので
switch( i ){ case 0 : //iが0または case 1 : //iが1または case 2 : //iが2の時 ret = OK ; // break ; //breakがないのと同じ case -1 : ret = NG ; break ; case -2 : ret = DB_EEROR ; break ; default : ret = EEROR ; break ; }
は
iが0,1,2,-1の時にretがNGになってしまいます。
(0,1,2の時にセットしたret=OKは上書きされます。)
また「指定値」には「文字」も指定できます。
switch( i ){ case 'A' : ret = OK ; break ; case 'B' : ret = NG ; break ; case 'C' : ret = DB_EEROR ; break ; default : ret = EEROR ; break ; }
今回示した例のswitch文はif文で書きかえることが可能です。
if( i == 0 ){ ret = OK ; } else if( ret == -1 ){ ret = NG ; } else if( ret == -2 ){ ret = DB_EEROR ; } else { ret = EEROR ; }