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);
}
参见: