【摘要】:级联if语句的样式约定是缩进每个if测试都是为了更容易阅读并强调你正在查看的是级联if语句。就我个人而言,我不太喜欢级联if语句,并在有意义的时候避免它们。主要原因是,过长的if嵌套可能会导致无法区分if语句执行的机制。幸运的是,switch语句就是这样工作的。但是,在讨论switch语句之前,让我们考虑增加或减少变量的一种更简单的方法。
当读取变量的特定值时,程序通常需要执行特定操作。例如,你可能有一个名为myDay的变量,它可以假定值为1(星期日)到7(星期六)。代码可能如下所示:
每当你看到这样的重复序列时,你都要搔搔头问:这样好吗?简短回答:不。事实上,这是愚蠢代码的另一个例子。原因是因为它的方式。目前编写的程序经常执行大量不必要的代码。例如,如果myDay等于1(星期日),第一个if测试为true,我们称之为doSundayStuff()。问题是,当时的程序继续执行另外六个不必要的if测试,尽管我们知道它们都不可能是真的。
那么,如何修复这个愚蠢的代码?Arduino C允许你在if语句中嵌套if语句。例如:(www.xing528.com)
如果遵循此逻辑,当myDay等于1时,将调用doSundayStuff(),并跳过所有其余的if测试,因为如果第一个关系测试为true,则不会执行第一个else子句。这称为级联if语句块。级联if语句的样式约定是缩进每个if测试都是为了更容易阅读并强调你正在查看的是级联if语句。
就我个人而言,我不太喜欢级联if语句,并在有意义的时候避免它们。主要原因是,过长的if嵌套可能会导致无法区分if语句执行的机制。另外,如果那天正好是星期天,那么你仍然会在myDay执行7次if测试,这似乎是浪费的。如果我们只执行一次测试,然后跳转到适当的语句,那么效率会更高。幸运的是,switch语句就是这样工作的。但是,在讨论switch语句之前,让我们考虑增加或减少变量的一种更简单的方法。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。