Правила программирования на Си и Си++

       

Если оператор if завершается оператором return, то не используйте else


Вместо:

if( условие )

    return xxx;

else

{

    делать_массу_вещей();

}

обычно лучше записать:

if ( условие )

    return xxx;

делать_массу_вещей();

Лучше сделать так, чтобы последним оператором return был аварийный возврат по ошибке, так чтобы вы получили сообщение об ошибке, если нечаянно заблудились.

Условный оператор также может решать эту проблему в простых ситуациях и делать код более читаемым для новичка. Вместо:



f()

{

// ...

if( x )

    return 123;

else if ( y )

    return 456;

else

    return ERROR;

}

используйте

f()

{

    // ...

    return x ? 123   :

           y ? 456   :

               ERROR ;

}

Заметьте, насколько форматирование улучшает читаемость предыдущего кода.

Одна распространенная ситуация, в которой у вас имеется множество точек возврата, выглядит следующим образом:

if( A )

    return

FAIL;

else if( B )

    return

SUCCESS;

else

{

    // Масса кода

    return

SUCCESS;  // Подозрительны два одинаковых

                     // возвращаемых значения.

}

Вы можете устранить это следующим образом. Во-первых, избавьтесь от повтора возвращаемых значений, переместив их во внешний уровень вот так:

if( A )

    return

FAIL;

else if( B )

    ;

else

{

    // Масса кода

}

return SUCCESS;

Затем освободитесь от предложения if, связанного с пустым оператором:

if( A )

    return FAIL;

else if( B )

{

    // Масса кода

}

return SUCCESS;




Содержание раздела