Reference Language | Libraries | Comparison | Changes
if
语句与比较运算符一起用于检测某个条件是否达成,如某输入值是否在特定值之上等。if语句的语法是:
if (someVariable > 50) { // 条件为真时执行此处 }
本程序测试someVariable变量的值是否比50大。当大于50时,执行一些语句。换句话说,只要if后面括号里的结果(称之为测试表达式)为真,则执行大括号中的语句(称之为执行语句块);若为假,则跳过大括号中的语句。
if语句后的大括号可以省略。若省略大括号,则只有一条语句(以分号为结尾)成为执行语句。
if (x > 120) digitalWrite(LEDpin, HIGH); if (x > 120) digitalWrite(LEDpin, HIGH); if (x > 120){ digitalWrite(LEDpin, HIGH); } if (x > 120){ digitalWrite(LEDpin1, HIGH); digitalWrite(LEDpin2, HIGH); } // all are correct
在小括号里求值的表达式,需要以下操作符:
x == y (x 与 y 是否相等) x != y (x 与 y 是否不等) x < y (x 是否小于 y) x > y (x 是否大于 y) x <= y (x 是否小于等于 y) x >= y (x 是否大于等于 y)
注意使用赋值运算符的情况(如 if (x = 10)
)。一个‘=’表示的是赋值运算符,作用是将x的值设为10(将值10放入x变量的内存中)。两个'='表示的是比较运算符(如 if (x == 10)
),用于测试x和10是否相等。后面这个语句只有x是10时才为真,而前面赋值的那个语句则永远为真。
这是因为C语言按以下规则进行运算 if (x=10)
:10赋值给x(只要非0的数赋值的语句,其赋值表达式的值永远为真),因此x现在值为10。此时if的测试表达式值为10,该值永远为真,因为非0值永远为真。所以. if (x = 10)
将永远为真,这就不是我们运行if所期待的结果。另外,x被赋值为10,这也不是我们所期待的结果。
if的另外一种分支条件控制结构是if...else]形式。
更正、建议及新的文档应投递至论坛。
Arduino手册的文本受 Creative Commons Attribution-ShareAlike 3.0 License协议保护,手册中的例子代码则贡献给公共领域。