一、简单语句
1、表达式语句
由表达式组成的语句称为表达式语句。一般形式为:
表达式;(;是C语言语句的结束标志)
2、函数调用语句
函数调用语句由函数调用表达式后跟一个分号组成,其作用主要是完成特定的任务。一般形式为:
函数名(参数列表);
二、空语句
空语句用一个分号表示。一般形式为:
;
三、复合语句
复合语句是由花括号将多条语句组合在一起而构成的,在语法上相当于一条语句。形式为:
{ [内部数据描述语句]
数据操作语句1;
......
数据操作语句n;
}
(在复合语句的“内部数据描述语句”中定义的变量,是局部变量,仅在复合语句中有效;
复合语句结束的“}”后,不需要再加分号。)
四、流程控制语句
1、结构化语句
1.1条件语句
1.1.1if语句
(1)单分支if语句
形式为:
if(表达式)
语句
(2)双分支if语句
形式为:
if(表达式)
语句1
else
语句2
(当表达式的值为非0时,执行语句1;当表达式的值为0时,执行语句2。)
(3)多分支if语句
形式为:
if(表达式1)
语句1
else if(表达式2)
语句2
......
else if(表达式n-1)
语句n-1
else
语句n
1.1.2switch语句
switch语句是另一种分支控制语句,其特点是可以根据一个表达式的多种值,选择多个分支,因而也称为分情况语句或开关语句。一般形式为:
switch(表达式)
{
case 常量1:语句1
case 常量2:语句2
......
case 常量n:语句n
default:语句n+1
}
语句中的表达式可以是数值型或是字符型,表达式的值称为开关值,语句结构中各个case后常量表达式的值必须互不相同,否则执行时将出现矛盾,即同一个开关值,将对应多种执行方案。
当表达式的值与某一个常量相等时,就执行该常量后面的语句。
case常量起的是语句标号的作用,程序并不在此进行判断。当程序执行某个标号的语句时,就会按顺序执行后面的语句,直到遇到break语句或switch语句结束。
若表达式的值与所有常量表达式的值都不相同,则执行default后面的语句。default语句一般放在最后,否则会出现逻辑错误。
1.2循环语句
1.2.1while语句
while语句是通过判断循环控制条件是否满足来决定是否继续循环,一般形式为:
while(表达式)
循环体
表达式为循环控制条件,当表达式的值为非0(满足循环条件)时,执行循环体语句;当表达式的值为0时,退出循环。
“(表达式)”后的语句称为循环体。循环体可以是一条简单语句,也可以是一条空语句,或复合语句,或流程控制语句。如果有多条语句构成一个循环体,那么循环体必须要加上花括号,构成复合语句。
1.2.2 do...while语句
do...while语句的特点是:先执行循环体中的语句,再通过判断表达式的值来决定是否继续循环。一般形式为:
do
循环体
while(表达式)
do后面的语句是循环体,while后面的"(表达式)"为循环控制条件。
do...while语句的执行过程:先执行一次循环体语句,然后判别表达式,若表达式的值为非0,则重复执行一次循环体语句。如此不断重复执行,直至表达式的值为0时,结束循环。
1.2.3 for语句
一般形式为:
for(表达式1;表达式2;表达式3)
循环体
*表达式1:初值表达式,用于在循环开始前,为循环控制变量设置初始值。
*表达式2:循环控制逻辑表达式,它控制循环执行的条件,决定循环次数。
*表达式3:循环控制变量修改表达式。
*循环体:被重复执行的语句。
2、非结构化语句
2.1限定转向语句
2.1.1 break语句
B
break语句是限定转向语句,它使流程跳出所在的结构,转向所在结构之后。
2.1.2 continue语句
continue语句被称为继续语句。该语句的功能是使本次循环提前结束,即跳出循环体中continue语句后面尚未执行的循环体语句,继续进行下一次循环的条件判别。
2.1.3 return语句
return语句用于将值返回给调用函数,并结束当前函数的执行。它可以放在函数的任何地方,但一旦执行到return语句,函数将立即返回并结束。
2.2非限定转向语句
goto语句
goto语句被称为无条件转移语句,它的一般形式为:
goto 标号;
执行goto语句使流程转移到相应标号所在的语句,并从该语句开始执行。语句标号用标识符表示,即以字母或下画线开头,后跟字母、数字和下画线组成的字符序列。标号语句的形式为:
标号:语句
goto语句只能使流程在函数内转移,不得转移到该函数外。此外,goto语句使程序的结构性和可读性都变差,可尽量避免用goto语句。