如何在Arduino中循环使用多个变量?

如何在Arduino中循环使用多个变量?,arduino,Arduino,基本上,我的代码中有一组笨拙的if语句,用于将任何错误的传感器读数设置为零 if(土壤水分>150 | | |土壤水分150 | |土壤温度150 | |环境温度150 | |环境湿度),尽管循环也可以工作,但这样做完全可以。这取决于您的“高效”理念。更小的代码更有效吗?更少的编写或更少的指令。对于第一个标准,循环将更有效。对于第二个标准,这也是正确的。但是,每个指令,这是一个非常有效的方法。尽管循环也可以工作,但这样做是完全正确的。这取决于您对“有效”的看法.更小的代码更有效吗?更少的写入或更

基本上,我的代码中有一组笨拙的
if
语句,用于将任何错误的传感器读数设置为零

if(土壤水分>150 | | |土壤水分150 | |土壤温度<-100){
土壤温度=0;
}
如果(环境温度>150 | |环境温度<-100){
环境温度=0;
}

如果(环境湿度>150 | |环境湿度),尽管循环也可以工作,但这样做完全可以。这取决于您的“高效”理念。更小的代码更有效吗?更少的编写或更少的指令。对于第一个标准,循环将更有效。对于第二个标准,这也是正确的。但是,每个指令,这是一个非常有效的方法。

尽管循环也可以工作,但这样做是完全正确的。这取决于您对“有效”的看法.更小的代码更有效吗?更少的写入或更少的指令。对于第一个条件,循环将更有效。对于第二个条件,这也是正确的。但是,每个指令的指令数,这是一种非常有效的方法。

您可以使用帮助程序来精简代码:

boolean outOfBounds(int value, int low, int high)
{
    if ( value < low || value > high ) 
        return true;
    else
        return false;
}
如果限制始终为-100和150,则可以传递一个指向变量的指针,并在例程中将其设置为零:

void resetBounds(int *pvar)
{
    if ( *pvar < -100 || *pvar > 150 ) {
        *pvar = 0;
    }
}
我觉得很干净

至于你的循环,是的,这是可行的,但它意味着将值复制到数组中,然后在它们上面循环的开销,这会分散你对它们所做的事情的注意力。这几乎就像机械装置阻碍了看到正在发生的事情。这就是我的观点


玩得开心!

您可以使用助手例程来精简代码:

boolean outOfBounds(int value, int low, int high)
{
    if ( value < low || value > high ) 
        return true;
    else
        return false;
}
如果限制始终为-100和150,则可以传递一个指向变量的指针,并在例程中将其设置为零:

void resetBounds(int *pvar)
{
    if ( *pvar < -100 || *pvar > 150 ) {
        *pvar = 0;
    }
}
我觉得很干净

至于你的循环,是的,这是可行的,但它意味着将值复制到数组中,然后在它们上面循环的开销,这会分散你对它们所做的事情的注意力。这几乎就像机械装置阻碍了看到正在发生的事情。这就是我的观点


玩得开心!

尽管循环也能起作用,但这样做很好。这取决于你的“高效”理念。更小的代码更有效吗?更少的编写或更少的指令。对于第一个标准,循环将更有效。对于第二个标准,这也是正确的。但是,每指令指令,这是一个非常有效的方法。如果0是有效的界内值,为什么要将值设置为0?我预见到一些潜在的可怕错误。这是每指令这样做很好,不过循环也可以。这取决于你对“高效”的看法。更小的代码更有效吗?更少的编写或更少的指令。对于第一个标准,循环将更有效。对于第二个标准,这也是正确的。尽管每个指令,这是一个非常有效的方法。如果0是有效的界内值,为什么要将值设置为0?我预见到一些潜在的可怕错误。感谢r反馈!所以对我来说,我认为效率来自于添加更多的传感器;因此,如果我添加第五个传感器,比如说,我不必编写第五个if语句。如果我可以将其附加到数组中,那就太好了。然后,这个数组将通过-100/150 for循环来清除任何错误值。感谢反馈!谢谢我,我认为效率来自于添加更多的传感器;因此,如果我添加第五个传感器,比如说,我不必编写第五个if语句。如果我可以将其附加到数组中,那就太好了。然后,这个数组将通过-100/150 for循环来清除任何错误值。