boolean isCatAlive = CatHP != 0 && !
isCatZombie && !isCatGhost;
If(isCatAlive){にゃーんと出力}

みたいな
もっと長くて複雑な条件を変数に入れずに直接入れるとパット見でなにを表す条件なのかわからん
&&とか増えすぎて区切りもわかりにくかったりするし
この例だと条件の中身を見なくてもif(isCatAlive)の部分を見ただけでこれは猫が生きてるなら〜という意味だとわかる
あとは!(A && B)が!A || !Bと同じであることを利用するとか
知ってたらすまん