Как мне проверить вложенные операторы If в JavaScipt

#javascript

#javascript

Вопрос:

Я новичок в JavaScript, поэтому в настоящее время я работаю над скриптом, который должен обновлять вызываемую строку Wasl_Status . Это условия for, которые я пытаюсь проверить:

Вот мой код на данный момент:

 if (analog2 == 0) {
  return "Tamper Weight";
}
if ((analog1 == 0) amp;amp; (speed == 0)) {
  return "Parked Device Disconnected";
}
if ((analog1 == 0) amp;amp; (speed > 0)) {
  return "Moving Device Disconnected";
if ((ignition == true) amp;amp; (speed == 0))
    return 'Parked Engine On';
if ((ignition == false) amp;amp; (speed == 0))
    return 'Parked Engine Off';
if (speed > 0)
    return "Moving";
}
 

Когда я его тестирую, Wasl_Status выводит только первые три условия и игнорирует все последние три условия. Как мне сделать так, чтобы проверять каждое условие и возвращать все 6 значений? То, что я прочитал до сих пор, — это создание массива, но текущие инструкции говорят, что я должен выполнять вложенные операторы if. Надеюсь, мой вопрос понятен. Спасибо.

Комментарии:

1. вы не должны делать if иначе таким образом. вы должны воспринимать else буквально для всего, что не было обнаружено вашими ifs ifelses

2. вы хотите, чтобы код внутри else выполнялся, если analog2 == 0 ?

3. Ваш else сопряжен с if ((analog1 == 0) amp;amp; (speed > 0)){ return "Moving Device Disconnected"; } , вы это знаете?

4. и этот код: if ((analog1 == 0) amp;amp; (speed == 0)){ return "Parked Device Disconnected"; } if ((analog1 == 0) amp;amp; (speed > 0)){ return "Moving Device Disconnected"; } никогда не произойдет, поскольку вы уже что-то вернули

5. Редактировать: Else теперь удалено.

Ответ №1:

Хотя то, что вы делаете, правильно, я думаю, что легче читать и следовать коду, если вы, в большинстве случаев, пытаетесь получить return значение в конце функции:

 var message = 'no statements fit';

if      (analog2 == 0)                      { message = "Tamper Weight"; }
else if (analog1 == 0        amp;amp; speed == 0) { message = "Parked Device Disconnected"; }
else if (analog1 == 0        amp;amp; speed > 0)  {
  message = "Moving Device Disconnected";
   
  if      (ignition == true  amp;amp; speed == 0) { message = 'Parked Engine On'; }
  else if (ignition == false amp;amp; speed == 0) { message = 'Parked Engine Off'; }
  else if (speed > 0)                       { message = "Moving"; }
}

return message;
 

Тогда вы бы проще увидели, что возвращается и когда:

 if ((analog1 == 0) amp;amp; (speed > 0)) {
  return "Moving Device Disconnected";
  // ... everything after this code will never be executed because the function "stops" executing after a return.