#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.