以下のコードは、
flgにチェックが入ったら、PHASE10に
yoteibiに値が入ったら、statusをPHASE50に
kakuteibiに値が入ったら、statusをPHASE60に
jisshibiに値が入ったら、statusをPHASE70に
更新しようとしているプログラムです。
それ以外に、flgにチェックが入っても、
もしstatusがPHASE20,30,40の場合は、PHASE10にしない制限があります。
さらに、yoteibiにおいても、yoteibiの値を消して、
statusがPHASE50だった場合で、
かつ、flgにチェックがあれば、PHASE10にステータスを遷移させています。
kakuteibiやjisshibiもyoteibiと同じような感じになっています。
このソース一見わかりにくいので、シンプルに書き換える方法あれば
どんな感じにできるでしょうか。
function setStatus(newIntro) { if (data.flg && (new Set<String>{'PHASE20', 'PHASE30', 'PHASE40'}).contains(data.status)) { // do nothing } else { data.status = 'PHASE10'; } if (data.yoteibi != null && data.status != 'PHASE60' && data.status != 'PHASE70' ) { data.status = 'PHASE50'; } else if (data.yoteibi == null && data.status != 'PHASE50' && data.flg) { data.status = 'PHASE10'; } if (data.kakuteibi != null && data.status != 'PHASE70') { data.status = 'PHASE60'; } else if (data.kakuteibi == null && data.status != 'PHASE60') { if (data.yoteibi != null) { data.status = 'PHASE50'; } else if (data.flg) { data.status = 'PHASE10'; } } if (data.jisshibi != null) { data.status = 'PHASE70'; } else if (data.jisshibi == null && data.status != 'PHASE70') { if (data.kakuteibi != null) { data.status = 'PHASE60'; } else if (data.yoteibi != null) { data.status = 'PHASE50'; } else if (data.flg) { data.status = 'PHASE10'; } } }
回答3件
あなたの回答
tips
プレビュー