Как создать несколько операторов if в JavaScript?(закрыто) - PullRequest
0 голосов
/ 10 февраля 2019

[Закрыто, так как оба ответа работают для этого примера, спасибо!]

Я получаю значения из динамического файла JSON (то есть получаю его значения в виде массива от датчика через ESP8266) ии я пытаюсь получить другое слово для каждого значения датчика.Но поскольку я пытаюсь это сделать, условное вычисление становится истинным для нескольких операторов.

Мне нужна помощь по условным выражениям, чтобы получить слово для каждого значения, например, если я получу «25» в качестве значения,Мне нужно отобразить только слово «грустный», а не слова «тревожный» или «счастливый».Если я получу значение «37», я хочу, чтобы просто «счастливый» отображался.

Вот код:

if (val0 > 40){
 fill(255,0,0);
 textSize(15);
 text('anxious',width/2-50,70); 

} else if (val0 > 35) {
 fill(255,200,0);
 textSize(15);
 text('happy',width/2-50,70); 

} else if (val0 > 20){
 fill(0,0,255);
 textSize(15);
 text('sad',width/2-50,70); 

} else {
 fill(255);
 textSize(15);
 text('nothing',width/2-50,70); 
}

Как видите, я совершенно новичок в js, поэтому, пожалуйста, наведите меня немного!

Ответы [ 2 ]

0 голосов
/ 10 февраля 2019

вы можете использовать больше фигурных скобок и вкладок, чтобы сделать вашу структуру if более читабельной.

if(condition)
{
//do something
}
else
{
    if(condition)
    {
    //do something
    } 
    else
    {
        if(condition)
        {
        //do something
        } 
    }
}

но я думаю, что ваша конкретная проблема лучше подходит с помощью оператора switch

***** РЕДАКТИРОВАТЬ ******

switch (true) {
    case (val >= 40):
       //do something
       break;
    case (val >= 35):
        //do something;
        break;
    case (val >= 25):
        //do something;
        break;
    default:
        //do something;
        break;
}
0 голосов
/ 10 февраля 2019

Вы применяете неправильные условия в операторе if. Рассмотрим номер 45, он будет удовлетворять всем трем условиям, а именно> 40> 35 и> 20, и первое условие, с которым столкнется код, будет применено, то есть условие> 40, поэтомукод внутри этого блока будет выполнен.Вы должны применять условия в диапазонах

if (val0 >= 40){
 fill(255,0,0);
 textSize(15);
 text('anxious',width/2-50,70); 

} else if (val0 >= 35 && val0<40) {
 fill(255,200,0);
 textSize(15);
 text('happy',width/2-50,70); 

} else if (val0 >= 20 && val0<35){
 fill(0,0,255);
 textSize(15);
 text('sad',width/2-50,70); 

} else {
 fill(255);
 textSize(15);
 text('nothing',width/2-50,70); 
}
...