Если оператор 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;