条件がいっぱいある時、ifのifの〜見たいにネストしてしまうことがあると思います。書いている最中は、わかりやすいのでよいのですが、読むときって辛いですね。条件を満たさない場合は、途中リターンという手もありますが、コーディングルールなどreturnは、必ず最後、goto文は使うなというケースがたまにあります。そんな時にちょっとだけネストをなくせる方法です。
※私のスタンスとしては、途中returnはOK、goto文はエラーや多重ループから抜ける場合などだけ使うって感じです。
こんな例を考えてみます。
sample.c
if( 条件A ) {
} else {
if( 条件B ) {
} else {
if( 条件C ) {
} else {
処理実行
}
}
}
途中リターンやgoto文が禁止されている場合には、下のような感じで書くとネストが少なくなりますね。でもこれって、goto文と変わらないですね。
sample.c
do {
if( 条件A )
break;
if( 条件B )
break;
if( 条件C )
break;
処理実行
} while(0);