用户工具

站点工具


reference:language:if

差别

这里会显示出您选择的修订版和当前版本之间的差别。


前一修订版
reference:language:if [2023/06/07 04:23] (当前版本) – 外部编辑 127.0.0.1
行 1: 行 1:
 +=====if(条件判断语句)和 ==、!=、<、>(比较运算符)=====
 +
 +if 语句与比较运算符一起用于检测某个条件是否达成,如某输入值是否在特定值之上等。if 语句的语法是:
 +
 +<code cpp>
 +if (someVariable > 50)
 +{
 +  // 执行某些语句
 +}
 +</code>
 +
 +本程序测试 someVariable 变量的值是否大于 50。当大于 50 时,执行一些语句。换句话说,只要 if 后面括号里的结果(称之为测试表达式)为真,则执行大括号中的语句(称之为执行语句块);若为假,则跳过大括号中的语句。
 +if 语句后的大括号可以省略。若省略大括号,则只有一条语句(以分号结尾)成为执行语句。
 +
 +<code cpp>
 +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); 
 +}                                 // 以上所有书写方式都正确
 +</code>
 +
 +在小括号里求值的表达式,需要以下操作符:
 +
 +=== 比较运算操作符: ===
 +
 +<code>
 + x == y(x 等于 y)
 + x != y(x 不等于 y)
 + x <  y(x 小于 y) 
 + x >  y(x 大于 y)
 + x <= y(x 小于等于 y)
 + x >= y(x 大于等于 y)
 +</code>
 +
 +=== 警告: ===
 +
 +注意使用赋值运算符的情况(如 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 的另外一种分支条件控制结构是 [[zh:reference:language:else|if...else]] 形式。
 +