if文の複数条件について

お世話になっております。
if文の複数条件でandとorを使って条件を満たそうとしているですがうまく意図する挙動になってくれません。
どなたかわかる方がいましたらご教授をよろしくお願いいたします。

下記にて情報を共有させて頂きます。

【項目名、フィールドコード】
・【診断結果】、「DiagnosisResult」
「ドロップダウン」項目
・【是正計画(あり/なし)、「CP_CorrectivePlanExistense」
「ドロップダウン」項目
・【是正終了予定日】、「CorrectiveEndDate 」
「日付」項目

【実現したいif文条件】
・【診断結果】が「脆弱性なし」
・【是正計画(あり/なし)】が 未入力または「なし」
・【是正終了予定日】が入力済
上記条件をすべて満たす場合に【是正終了予定日】に対して保存時エラーを出す

【試しているif文】
if (DiagnosisResult == ‘脆弱性なし’&& CP_CorrectivePlanExistense == undefined || CP_CorrectivePlanExistense == ‘なし’&& !(CorrectiveEndDate == undefined)

【挙動パターン】
・脆弱性あり、なし、日付入力あり
・脆弱性なし、未入力、日付入力なし
考えられるテストケースで上記2点のパターンでエラーが出てしまうのでエラーが出ないようにしたいのですがどうif条件を変えればいいのかが分かりません。

どなたかご教授よろしくお願いいたします。
以上、よろしくお願いいたします。

私の場合、条件合わない時点で抜け出すようにしちゃってますね。
見直したときに自分が何したかったのかわからなりがちで。
これを短く || でまとめてreturnいいと思います。

// 脆弱性なしでなければreturn
if (DiagnosisResult !== "脆弱性なし") return
// 是正終了予定日入力されてなかったらreturn
if(!CorrectiveEndDate) return 
//是正計画が ありになってしまっていたら return
 if(!CP_CorrectivePlanExistense === "あり") return

~条件そろった時の処理記述~

`

pomom様

回答ありがとうございます。
上記でreturnで抜けるようにしたら実現できそうです。
一度試してみます。ありがとうございます。

以上、よろしくお願いいたします。

1 Like

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。