Loading...

Learning   Examples | Foundations | Hacking | Links

''Examples > Control Structures"

If语句(条件控制语句)

if()语句是编程中最基础的一种流程控制。if语句可以根据指定条件的真与假来执行对应的程序,如下所示


if (someCondition) {
   //若条件为真,则执行下面的语句
}

if-else是if语句的一种比较常用的变化形式,其结构如下所示:


if (someCondition) {
   // 条件为真则执行此处语句
} else {
   // 条件为假则执行此处语句
}

另外还有else-if的形式,用于在if检验条件为假时进行其它条件检测:


if (someCondition) {
   // 条件为真则执行此处语句
} else if (anotherCondition) {
   // 仅在somecondition为假
   // 且anotherCondition为真时执行
}

if语句使用频率非常高。下例展示了如何判断analog读取的值高于某阈值时点亮板上的13脚LED(大多数Arduino板上自带):

所需硬件

  • Arduino板
  • (1) 电位器或可调电阻
  • (1) 220欧姆电阻
  • (1) LED
  • 连接导线

电路图

点击图片放大浏览

使用FritzingFritzing设计此图。 请前往Fritzing项目主页 寻找更多电路图样例。

示意图

点击图片放大浏览

源代码

下例所示的代码中,名为analogValue的变量用于保存从电位器读取到的值,该电位器连接于Arduino的analogPin 0(模拟IO口0脚)。该值与一个基准值作比较,若此值在基准值之上,则点亮13脚上的LED;在基准值之下则LED熄灭。

/*
  条件判断 -- If语句
 
 此例演示了if()语句的用法。
 该程序读取并打印电位器的值(从模拟输入口),若该值在设定的基准值之上则点亮LED。
 
 电路:
 * 电位器连在模拟0脚。
 电位器中间的脚连在模拟引脚上,两边的脚分别连+5V和接地。
 * LED连在13脚上。
 
 * 注意:绝大多数的Arduino板上已经在13脚上连了一个LED,所以在此例无须多连。
 
 created 17 Jan 2009
 modified 30 Aug 2011
 by Tom Igoe

This example code is in the public domain.
 
http://arduino.cc/en/Tutorial/IfStatement
 
 */

 
// 这些是常量,值不会变动
const int analogPin = A0;    // 电位器连的脚
const int ledPin = 13;       // LED连的脚
const int threshold = 400;   // 指定电位器读数的基准值

void setup() {
  // 将LED连的脚初始化为OUTPUT状态
  pinMode(ledPin, OUTPUT);
  // 初始化串口通讯
  Serial.begin(9600);
}

void loop() {
  // 读取电位器的值
  int analogValue = analogRead(analogPin);

  // 若电位器读数高于设定的基准值,点亮LED
  if (analogValue > threshold) {
    digitalWrite(ledPin, HIGH);
  }
  else {
    digitalWrite(ledPin,LOW);
  }

  // 输出该值到串口
  Serial.println(analogValue);

}

参见: