甲语句是给予该指示计算机执行特定操作,例如显示在屏幕上,或收集输入计算机的命令。计算机程序由一系列语句组成。
在C中,语句可以是以下任何一种:
标记语句
声明前面可以有一个标签。C中存在三种类型的标签。
后跟冒号(:
)的简单标识符是标签。通常,此标签是goto
声明的目标。
在switch
报表,case
并default
标记报表存在。表格声明
case
常量表达式 :
语句
表示如果语句的控制表达式switch
的值与constant-expression的值匹配,则控件将传递给此语句。(在这种情况下,constant-expression的类型必须是整数或字符。)表单的声明
default
:
声明
指示将控制将传递到该语句,如果控制表达switch
语句不匹配任何的恒定表达的内switch
声明。如果default
省略该语句,则控件将传递到语句后面的switch
语句。在一个switch
语句中,只能有一个default
语句,除非该switch
语句在另一个switch
语句中。
复合语句
一个复合语句就是这样,C三组多个语句合并为一个语句。它由大括号内的多个语句和声明组成(即{
和}
)。在1989-1990的ANSI C标准中,复合语句包含一个可选的声明列表,后跟一个可选的语句列表; 在最近的标准修订版中,声明和声明可以通过代码自由交织。函数体也是规则的复合语句。
表达式声明
一个表达式语句由一个可选的表达,随后分号(的;
)。如果表达式存在,则该语句可能具有值。如果不存在表达式,则该语句通常称为空语句。
该printf
函数调用是表达式,那么语句如printf ("Hello World!\n");
在表达式语句。
选择陈述
C中存在三种类型的选择语句:
if
(
表达 )
陈述
在这种类型的if语句中,仅当表达式为非零时才会执行子语句。
if
(
表达式 )
语句 else
声明
在这种类型的if语句中,只有当表达式为非零时,才会执行第一个子语句; 否则,将执行第二个子语句。每个else
匹配最接近的不匹配if
,以便以下两个代码片段不相等:
if (表达式) if (secondexpression ) statement1 ; else statement2 ; if (表达式) { if (secondexpression ) statement1 ; } else statement2 ;
因为在第一个else
语句中,语句与secondexpression
用于控件的if语句匹配,但在第二个语句中,大括号强制它else
与控件的if语句匹配expression
。
Switch语句也是一种选择语句。他们有格式
switch
(
表达 )
陈述
这里的表达式是整数或字符。这里的语句通常是复合语句,它包含大小写标记的语句和可选的默认标记语句。
迭代语句
C有三种迭代语句。第一个是带有表单的while语句
while
(
表达 )
陈述
只要控制表达式在每次迭代开始时评估为非零,一段时间的子语句就会重复运行。如果控制表达式在第一次计算到零时,则子语句可能根本不运行。
第二个是表格的do-while声明
do
陈述 while
(
表达 )
;
这类似于while循环,除了控制表达式在循环结束而不是开始时计算,因此子语句必须至少执行一次。
第三种迭代语句是for语句。在ANSI C 1989中,它具有形式
for
(
表达选择 ;
表达选择 ;
表达选择 )
语句
在C标准的更新版本中,声明可以替代第一个表达式。在选择下标表示该表达式是可选的。
该声明
for (e1 ; e2 ; e3 ) s ;
是粗略的等价物
{ e1 ; 而 (e2 ) { s ; e3 ; } }
除了continue
内部的陈述行为s
。
该e1
表达式表示的初始条件; e2
控制表达; 以及e3
循环的每次迭代会发生什么。如果e2
缺少,则表达式在每次迭代时都被认为是非零的,并且只有一个break
语句s
(或对非返回函数的调用,如exit
或abort
)将结束循环。
跳转声明
C有四种类型的跳转语句。第一个,goto
声明,是谨慎使用并具有形式
goto
识别码 ;
此语句将控制流转移到标有给定标识符的语句。该声明必须与该声明具有相同的功能goto
。
第二个是break语句,带有表单
break
;
在迭代语句和switch
语句中用于将控制流传递给while,do-while,for或switch之后的语句。
第三个是继续声明,带有表格
continue
;
在迭代语句的子语句中用于将控制流转移到子语句结束之前的位置。在for
语句中,迭代表达式(e3
上面)将在e2
评估控制表达式(上面)之前执行。
第四种类型的跳转语句是return
带有表单的语句
return
表达选择 ;
该语句从函数返回。如果函数返回类型是void
,则函数可能不返回值; 否则,表达式表示要返回的值。
猜你想读:《C编程.计算机科学》2.副作用和序列点