[关闭作为两个答案都在为这个例子,谢谢!]
我是从一个动态的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完全新的,所以请指导我一点点!
你申请错if语句的条件,考虑45号,这将满足所有的3个条件,即> 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);
}
你可以使用更多的花括号和标签,让您若结构更具可读性。
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;
}