基于ARM的小功率电动汽车控制器开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.6 C语言中的语句

3.6.1 赋值语句

在C语言中,使用“ = ”完成变量赋值,其具体作用是将位于等号右侧的表达式的数值赋值给等号左侧的变量。赋值语句为在程序执行过程中更改变量的数值提供了条件。需要注意的是,一些自操作指令也是可以完成修改变量的任务的,因此可以作为一种特殊类型的赋值语句。

3.6.2 判断语句

为了表明语句的含义,C语言中引入了一些英文单词来标识语句作用并形成语法结构,这些单词称为C语言的关键字。

C语言中,利用判断语句可以创造程序分支,为不同条件下执行不同的代码提供条件。判断语句的标准格式如表3-32所示,其中C语言支持逐次判断多个逻辑表达式是否成立并执行相应的代码块的内容。当一个代码块的内容执行完毕后将跳出判断语句。在实际使用中,可以根据需要省略逻辑表达式2以及之后代码,即可以仅使用if语句而省略“else if”语句和“else”语句。

表3-32 条件判断语句的用法

表3-33给出了一个利用判断语句改变变量数值的例子。其作用是当变量a的数值大于10的时候,为变量b赋值100;当变量a不大于10并且大于5的时候,为变量b赋值50;当变量a不大于5并且大于0的时候,为变量b赋值20,否则为变量b赋值10。

表3-33 条件判断语句的代码示例

3.6.3 循环语句for

利用for循环语句可以重复执行一个代码块,当执行完毕一遍代码块之后,会再次检查循环条件是否满足,如果满足则会再次执行该代码块。整个过程不断重复,直至循环条件不再满足,或者有其他指令终止了for循环语句的执行。表3-24给了利用变量i控制变量s的数值的例子。其中,语句for之后的小括号内的三个表达式分别为初始化、循环条件和尾语句。具体来说,i=1将变量i的数值设置为1,该语句只会执行一次,可以看作对循环语句中变量的初始化;i<=5为循环条件,即只有当该条件成立的时候,代码块中的内容才会被执行;i+= 1为尾语句,其会在代码块中的内容执行完毕之后再执行。可以看出,在表3-34所示的代码中,当i为1、2、3、4和5时,均会执行代码块的内容。之后i变为6,循环条件不再满足,语句执行完毕。由于变量 s初值为0,因此当循环语句执行完毕后,s的数值为0+1+2+3+4+5=15。

表3-34 循环语句“for”的代码示例

3.6.4 循环语句while

利用 while循环语句可以在某条件满足的情况下,重复执行特定的代码块。while语句之后的小括号内为循环条件,当循环条件成立的时候,代码块中的内容会被执行一遍;之后会再次判断循环条件是否成立,如果成立则再次执行代码块中的内容。如此重复,直至循环条件不成立。表3-35给出了一个示例,根据变量 i的数据改变变量s的数值。可以看出,当i为1、2、3、4、5的时候,循环条件均成立,因此s进行自加操作,之后i变为6,循环条件不再成立,语句结束。最终s的数值为0+1+2+3+4+5=15。

表3-35 循环语句“while”的代码示例

3.6.5 循环语句do/while

利用do/while循环语句可以执行一个代码块,之后判断循环条件是否成立,若成立则再次执行该代码块。如此不断循环,直至某次条件不再成立。注意基于do/while的循环语句的特征为先运行后判断,即当运行完一次代码块之后再判断条件是否成立,如果成立则会再次运行该代码块。而单纯是用while构成的循环语句的特点是先判断后运行,即首先判断循环条件是否成立,成立后才会运行相应的代码块。表3-36中给出了一个利用do/while构成的循环语句,仍然是以变量i为循环条件,修改变量s的数值。s的最终结果为0 + 1 + 2 + 3 + 4 + 5 = 15。

表3-36 循环语句“do/while”的代码示例

3.6.6 循环终止语句

当循环条件不满足的时候,循环语句会终止执行。除此之外,还可以用关键字break和continue来打断循环语句的执行。其中break的作用是终止整个循环语句,即跳转到循环语句之后的代码中;而continue的作用是终止当次的循环语句,之后判断下次循环条件是否成立,若成立则继续执行循环语句的内容。为了对二者的区别进行对比,表3-37给出了利用变量i修改变量s1和变量s2的数值的代码。其中关于变量s1的代码中,使用了break语句,而关于变量s2的代码中,则使用了continue语句。二者均根据i是否等于2来变更程序分支。

表3-37 循环终止语句的代码示例