“If”的版本间的差异
(Created page with "https://www.microduino.cn/wiki/index.php/Arduino_语法手册/zh 返回主菜单") |
|||
(未显示1个用户的4个中间版本) | |||
第1行: | 第1行: | ||
− | [[https://www.microduino.cn/wiki/index.php/Arduino_%E8%AF%AD%E6%B3%95%E6%89%8B%E5%86%8C/zh | + | if(条件判断语句) |
+ | |||
+ | if 语句与比较运算符一起用于检测某个条件是否达成,如某输入值是否在特定值之上等。if 语句的语法是: | ||
+ | <pre style="color:green"> | ||
+ | if (someVariable > 50) | ||
+ | { | ||
+ | // 执行某些语句 | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | 本程序测试 someVariable 变量的值是否大于 50。当大于 50 时,执行一些语句。换句话说,只要 if 后面括号里的结果(称之为测试表达式)为真,则执行大括号中的语句(称之为执行语句块);若为假,则跳过大括号中的语句。 if 语句后的大括号可以省略。若省略大括号,则只有一条语句(以分号结尾)成为执行语句。 | ||
+ | <pre style="color:green"> | ||
+ | |||
+ | if (x > 120){ | ||
+ | digitalWrite(LEDpin1, HIGH); | ||
+ | digitalWrite(LEDpin2, HIGH); | ||
+ | } // 保持这种书写方式 | ||
+ | </pre> | ||
+ | |||
+ | 在小括号里求值的表达式,需要以下操作符: | ||
+ | |||
+ | 比较运算操作符: | ||
+ | <pre style="color:green"> | ||
+ | |||
+ | if(x == y) //如果x 等于 y | ||
+ | if(x != y) //如果x 不等于 y | ||
+ | if(x < y) //如果x 小于 y | ||
+ | if(x > y) //如果x 大于 y | ||
+ | if(x <= y) //如果x 小于等于 y | ||
+ | if(x >= y) //如果x 大于等于 y | ||
+ | </pre> | ||
+ | |||
+ | 注意使用赋值运算符的情况(如 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 形式。 | ||
+ | |||
+ | [[https://www.microduino.cn/wiki/index.php/Arduino_%E8%AF%AD%E6%B3%95%E6%89%8B%E5%86%8C/zh 返回Arduino语法手册]] |
2016年5月20日 (五) 03:41的最新版本
if(条件判断语句)
if 语句与比较运算符一起用于检测某个条件是否达成,如某输入值是否在特定值之上等。if 语句的语法是:
if (someVariable > 50) { // 执行某些语句 }
本程序测试 someVariable 变量的值是否大于 50。当大于 50 时,执行一些语句。换句话说,只要 if 后面括号里的结果(称之为测试表达式)为真,则执行大括号中的语句(称之为执行语句块);若为假,则跳过大括号中的语句。 if 语句后的大括号可以省略。若省略大括号,则只有一条语句(以分号结尾)成为执行语句。
if (x > 120){ digitalWrite(LEDpin1, HIGH); digitalWrite(LEDpin2, HIGH); } // 保持这种书写方式
在小括号里求值的表达式,需要以下操作符:
比较运算操作符:
if(x == y) //如果x 等于 y if(x != y) //如果x 不等于 y if(x < y) //如果x 小于 y if(x > y) //如果x 大于 y if(x <= y) //如果x 小于等于 y if(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 形式。