表題の件で質問させてください。
レガシーなプログラムに対して、手を加えようとしています。
きれいなコードじゃないなあ、と思ったため質問させてください。
IF文の中に関数を入れてその戻り値によって条件する場合、
戻り値のパターンが2つ以下なら以下のように書けると思います。
c
1if(hoge() == 0){ 2処理A 3}else{ 4処理B 5}
ただし、戻り値のパターンが3つ以上ある場合は、
c
1if(hoge() == 0){ 2処理A 3}else if(hoge() == 1){ 4処理B 5}else{ 6処理C 7}
みたいな書き方になるかと思うのですが、
こうすると、関数hogeは2回よばれちゃってますよね…。
かといって、switch文に関数は入れられないし。
こういう時に、
・関数を1回しか呼ばない
・戻り値で場合分けする
という条件を満たす方法はないのでしょうか?
結局自分は断念して、
戻り値のパターンを2つにして、関数hoge内にフラグを持たせて
それで条件分岐するようにしたのですが、
なんか賢い書き方じゃないなあと思っていました。
《追記》
switchで不可と書きましたが、勘違いでした。
回答5件
あなたの回答
tips
プレビュー