ロジック全体が「この条件が真/偽の場合はこれを返し、そうでない場合はこれを返す」という行に沿った関数では、これがとる最善の、またはおそらく最も受け入れられている形式は何ですか? 私が見た3つの方法があるようです。
int function(bool foo){
if(foo){
return doSomething();
}else{
return somethingElse;
}
}
これは最も理にかなっていますが、戻り値の型を持つ関数の戻り値の型をブランチに配置してはならないことを読んだことがあります。(なぜ、ソースは決して言わなかった)それで、これがあります:
int function(bool foo){
if(foo){
return doSomething();
}
return somethingElse;
}
これには分岐の外に戻り値の型がありますが、コードの意味の一部が取り除かれていると思います。また、if-else ブロックに利点があることも読みました。(それらが何であるか、情報源も言いませんでした)最後に、これがあります:
int function(bool foo){
int result;
if(foo){
result = doSomething();
}else{
result = somethingElse;
}
return result;
}
意味はそこにあります。 return はブランチの外にありますが、機能に実際には必要のない変数とコードが追加されています。
私の質問は、これら 3 つの形式のどれ、または他の形式がある場合は、この流れで関数を記述するための最良の方法でしょうか?