Arduino 您所在的位置:网站首页 arduino语句 Arduino

Arduino

2022-06-05 04:11| 来源: 网络整理| 查看: 265

在Arduino中流程控制语句是非常重要的,什么是流程控制语句呢?其实就是一系列的条件判断,它要求程序代码对给出的一个或多个条件进行判断,如果条件被判断为true,则执行该语句;如果条件被判断为false,则可选择执行其他语句。下图是大多数编程语言中常见的典型判断结构的形式。

典型判断结构的形式

控制语句是控制代码执行重要元素,它包含以下几类。

If 语句 if 控制单个语句的形式 if ( 表达式 ) 语句 ;

在 C 语言中, if 只能控制其后的一个语句。如果要控制多个语句就必须加大括号 { }。

if 控制多个语句的形式 if ( 表达式 ){ 语句块 ; }

它先判断括号中的条件或代码,如果为真,则执行后面的或大括号中的代码,否则将跳过这些语句。例如:

/* 定义全局变量 */ int A = 5 ; int B = 9 ; Void setup () { } Void loop () { // 判断逻辑条件 ; if (A > B) // 如果条件为真,则执行以下语句; A++; // 判断逻辑条件 ; If ( ( A < B ) && ( B != 0 )) // 如果条件为真,则执行以下语句; { A += B; B--; } } If …else 语句

if 语句后面可以跟着一个可选的 else 语句,else 在条件为false时执行。

语法结构 if (表达式) { 语句块 ; } else { 语句块 ; }

if 先判断()内的条件,如果为真,执行{}内的代码;否则将执行else语句{}中的代码。如:

/* 定义全局变量 */ int A = 5 ; int B = 9 ; Void setup () { } Void loop () { // 判断逻辑条件; if (A > B) //执行{}内的语句; { A++; }else { //否则,执行else语句; B -= A; } }

1. else 也只能控制到其后的一个语句,如果要控制多个语句的话必须要加大括号{};

2. if 可以没有 else 单独使用,但如果要用 else,它必须是 if 的一部分。else 绝对不可能脱离if而单独使用。

If…else if …else 语句

if 语句后面可以跟一个可选的 else if …else语句。这是一个多条件判断语句,相比单 if 语句,在多条件判断时更好用。它的结构如下:

if (表达式_1) { 语句块 ; } else if(表达式_2) { 语句块 ; } . . . else { 语句块 ; }

if…else if…else 比 if…else 复杂一点,if…else if…else 的意思就是:“如果”第一个成立,就执行第一个;“否则如果”第二个成立就执行第二个;“否则”就执行第三个。当使用 if…else if …else语句时,需要记住以下规则:if 后面可以有多个 else if 语句,但else if 必须位于 else 之前;只要第一个 else if 语句的条件为真,其余的 else if 或else 语句都不会被执行。如:

/* 定义全局变量 */ int A = 5 ; int B = 9 ; int c = 15; Void setup () { } Void loop () { // 判断逻辑条件 if (A > B) //如果为真 { A++; } // 判断逻辑条件 else if ((A == B )||( B < c) ) //如果为真 { C = B* A; }else c++; } switch case 语句

从功能上说,switch 语句和 if 语句完全可以相互取代。但从编程的角度,它们又各有各的特点,所以至今为止也不能说谁可以完全取代谁。当嵌套的 if 比较少时(三个以内),用 if 编写程序会比较简洁。但是当选择的分支比较多时,嵌套的 if 语句层数就会很多,导致程序冗长,可读性下降。因此需要用 switch 语句来处理多分支选择。所以 if 和 switch 可以说是分工明确的。switch case语法结构如下:

switch (表达式) { case 常量表达式1: 语句1 case 常量表达式2: 语句2 ┇ case 常量表达式n: 语句n default: 语句n+1 }

语法说明:

switch 后面括号内的“表达式”必须是整数类型。也就是说可以是 int 型变量、char 型变量,也可以直接是整数或字符常量,哪怕是负数都可以。但绝对不可以是实数,float 型变量、double 型变量、小数常量通通不行,全部都是语法错误。 switch 下的 case 和 default 必须用一对大括号{}括起来。 当switch后面括号内“表达式”的值与某个case后面的“常量表达式”的值相等时,就执行此case后面的语句。执行完一个case后面的语句后,流程控制转移到下一个case继续执行。如果你只想执行这一个case语句,不想执行其他case,那么就需要在这个case语句后面加上break,跳出switch语句。再重申一下:switch是“选择”语句,不是“循环”语句。很多新手看到break就以为是循环语句,因为break一般给我们的印象都是跳出“循环”,但break还有一个用法,就是跳出switch。 若所有的 case 中的常量表达式的值都没有与 switch 后面括号内“表达式”的值相等的,就执行 default 后面的语句,default 是“默认”的意思。如果 default 是最后一条语句的话,那么其后就可以不加 break,因为既然已经是最后一句了,则执行完后自然就退出 switch 了。 每个 case 后面“常量表达式”的值必须互不相同,否则就会出现互相矛盾的现象,而且这样写造成语法错误。 “case常量表达式”只是起语句标号的作用,并不是在该处进行判断。在执行 switch 语句时,根据 switch 后面表达式的值找到匹配的入口标号,就从此标号开始执行下去,不再进行判断。 各个 case 和 default 的出现次序不影响执行结果。但从阅读的角度最好是按字母或数字的顺序写。当然你也可以不要 default 语句,就跟 if…else 最后不要 else 语句一样。但最好是加上,后面可以什么都不写。这样可以避免别人误以为你忘了进行 default 处理,而且可以提醒别人 switch 到此结束了。default 后面可以什么都不写,但是后面的冒号和分号千万不能省略,省略了就是语法错误

来看个例子:

switch (phase) { case 0: Lo(); break; case 1: Mid(); break; case 2: Hi(); break; default: Message("Invalid state!"); } 条件运算符 ? 和 : 条件运算符的语法形式 条件 ? 表达式1 : 表达式2

条件运算符为 ? 和 : ,它们又称三目运算符,? 和 : 是一对运算符,不能分开单独使用。它的执行流程是:如果条件的值为真,则以表达式1的值作为结果值;否则以表达式2的值作为结果值。

条件运算符的第一个操作数是条件,必须是标量类型,也就是算术类型或指针类型。第二个和第三个操作数分别是表达式 1 和表达式 2,它们必须满足下面条件之一:

(1) 两个可选表达式都具有算术类型,在这种情况下,整个运算的最终结果类型,是后面两个操作数进行寻常算术转换的类型。

(2) 两个可选操作数都有相同的结构或联合类型,或者 void 类型。整个运算的最终结果类型也属于与这两个操作数一样的类型。

(3) 两个可选操作数都是指针,并且符合下面的一个条件: 两个指针属于相同类型。整个运算的结果也属于相同的类型。 其中一个操作数是空指针常量。整个运算的结果属于另一个操作数类型。 其中一个操作数是对象指针,另一个是指向 void 指针。整个运算的结果属于 void* 类型。

来看具体实例:

#include int main(void) { int a, b, max; printf("please input two bumbers:"); scanf("%d %d", &a, &b); max = a > b ? a : b; printf("max = %d\n", max); return 0; }

专题:Arduino基础教程:

Arduino -程序结构-系列1Arduino -数据类型-系列2Arduino-变量和常量-系列3Arduino-运算符-系列4Arduino-流程控制语句-系列5Arduino-循环-系列6Arduino-函数-系列7Arduino-字符串 -系列8Arduino-字符串对象-系列9Arduino-时间函数-系列10


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有