2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ifのネスト

Posted at

条件がいっぱいある時、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);
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?