【C言語】
深いネストは理解しにくいので条件をひっくり返して早く返るとネストが浅くなる


■深いネストは理解しにくい

int deep_nest( uint8_t input){
    int ret ;
    if( 50 <= input  ){
        if( 200 > input  ){
            ret = 1;
        }
        else{
            ret = 2 ;
        }
    }
    else{
        ret = 3 ;
    }
    return    ret ;
}

■条件をひっくり返して早く返るとネストが浅くなる

int early_return( uint8_t input){
    if(input < 50){
        return  3;
    }
    if(input < 200){
        return  1;
    }
    return  2;
}

ネストが浅くなりコードが単純になります。

■まとめ(コンパイル可能な検算)

#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
//深いネストは理解しにくい
int deep_nest( uint8_t input){
    int ret ;
    if( 50 <= input  ){
        if( 200 > input  ){
            ret = 1;
        }
        else{
            ret = 2 ;
        }
    }
    else{
        ret = 3 ;
    }
    return    ret ;
}
//条件をひっくり返して早く返るとネストが浅くなる
int early_return( uint8_t input){
    if(input < 50){
        return  3;
    }
    if(input < 200){
        return  1;
    }
    return  2;
}
int main(void){
    for(int i = 0; i < 256; i++){
        int  d = deep_nest(i);
        int  e = early_return(i);
        if(d != e){
            abort();
        }
        printf("%d\n",d);
    }
}