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 ;
}
