if (条件) 及 ==, !=, <, > (比较运算子)

if 条件叙述,配合一个比较运算子,用于测试某种条件是否成立。例如,测试一个外部输入数值是否大于一个给定数字。if 条件叙述的语法格式如下:

if (someVariable > 50)
{
  // 在此做条件成立后想做的事
}

上面程式测试是否 someVariable 大于 50,如果成立,就执行写在大括号里的动作;换句话说,如果括号内叙述为真,则大括号内的程式码就会被执行,反之,则跳过这些程式码不执行,也就是这段程式码被省略掉了。

如果条件成立后要执行的程式码只有一行,大括号可以省略不写。

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);
}                                 // 以上都是符合语法的条件叙述

括号内的条件式应当使用下列运算子:

比较运算子:


   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,而不是比较 x 与 10 是否相等。

此外,if (x = 10) 这样的条件叙述将总是为真。这是因为 C 语言会如下执行此条件叙述:先把 10 赋值给 x(记得单一等号为指派运算子),然后 if 叙述对 x 求值。因为 if 叙述对任何非零值求值皆为 TRUE,而此时 x 包含非零值,故条件式将永远成立,这个结果使得条件判断失去意义,并非期望。此外,此条件叙述把 x 赋值为 10,也不是期望的动作。

if 叙述也可以构成分支控制结构的一部份,请参考 if…else 的说明。


语法参考主页面

本页由热血青年 LBU 译自英文版。

The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.