内容によりけりだけれど、よくやるリファクタリングの例を紹介しておきます。
// したいことは英語でいい名前をつける void したいこと(){ // したいこと } if( param==0 && 判定(param2) ){ したいこと(); }else if( !param3 ){ したいこと(); }
ただし、こういう複雑で奇妙な条件分岐がここに入ってくる時点で設計面の問題があるのではないかと感じます。
paramが0の時には何か例外的な動作なのではないかとか、「したいこと」の中でさらに何度もparamたちを判定して汚いコードになっているのではないか、などです。
トラバ全部読んでないけど、 boolean したいことをする? () { if( param==0 && 判定(param2) ){ return true; }else if( !param3 ){ return true; } return false; } if(したいことをする?()) { し...