Múltiples return

Re: Múltiples return

de Franco Profeti Rivadulla -
Número de respuestas: 0

Me gustaría que un profesor confirmara o explicara mejor esto ya que toda la vida me he topado con casos donde quizás usar un par de returns en lugar de uno ayudan a la legibilidad del código o ahorran alguna variable auxiliar.

Ahora no se me ocurre un ejemplo muy lindo para mostrar pero intentare explicarlo con un ejemplo bastante impractico y simple (que hasta se podría hacer con un ternary operator pero no se si lo enseñaron).

Supone que en una función por alguna razón tuvieras algo así respetando lo de tener un solo return sin nada que le siga:

int resultado_final;

if (x == 42)
    resultado_final = 20;
else
    resultado_final = 95;
    
return resultado_final;

Esto se podría escribir también como:

if (x == 42)
    return 20;
return 95;

El else ni siquiera es necesario porque si la primera condición es verdadera la función retornara. El segundo return solo actuara si la primera condición es falsa (comportándose así como un else, pero de manera visualmente compacta).

Un profesor seria capaz de poner un 0 en un parcial por hacerlo de la segunda manera? O solo se refería a algo así como:

return 0;
printf("Esto nunca pasara");