C 编程/语句
一个语句是给计算机的指令,指示计算机执行特定操作,例如显示到屏幕或收集输入。计算机程序由一系列语句组成。
在 C 语言中,语句可以是以下任何一种
语句可以由一个标签引导。C 语言中有三种类型的标签。
一个简单的标识符后面跟着一个冒号 (:
) 就是一个标签。通常,这个标签是 goto
语句的目标。
在 switch
语句中,存在 case
和 default
带标签的语句。
具有以下形式的语句
case
常量表达式 :
语句
表示如果 switch
语句的控制表达式的值与 常量表达式 的值匹配,则控制将传递到该语句。(在这种情况下,常量表达式 的类型必须是整数或字符。)
具有以下形式的语句
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 (expression)
if (secondexpression) statement1;
else
statement2;
if (expression)
{
if (secondexpression) statement1;
}
else
statement2;
因为在第一个代码段中,else
语句与 secondexpression
为控制的 if 语句匹配,但在第二个代码段中,大括号迫使 else
与 expression
为控制的 if 语句匹配。
switch 语句也是一种选择语句。它们具有以下格式
switch
(
表达式 )
语句
这里的表达式是一个整数或一个字符。这里的语句通常是复合语句,它包含带标签的 case 语句,并可以选择包含带标签的 default 语句。复合语句不应包含局部变量,因为跳转到内部标签可能会跳过此类变量的初始化。
C 语言有三种迭代语句。第一种是 while 语句,其形式为
while
(
表达式 )
语句
只要控制表达式在每次迭代开始时都计算为非零,while 的子语句就会重复运行。如果控制表达式第一次计算为零,子语句可能根本不会运行。
第二种是 do-while 语句,其形式为
do
语句 while
(
表达式 )
;
这与 while 循环类似,只是控制表达式在循环结束时而不是开始时计算,因此子语句必须至少执行一次。
第三种迭代语句是 for 语句。在 ANSI C 1989 中,它具有以下形式
for
(
表达式opt ;
表达式opt ;
表达式opt )
语句
在 C 标准的更新版本中,一个声明可以替代第一个表达式。opt 下标表示表达式是可选的。
语句
for (e1; e2; e3)
s;
大致等效于
{
e1;
while (e2)
{
s;
e3;
}
}
除了 s
中的 continue
语句的行为。
e1
表达式表示一个初始条件;e2
表示一个控制表达式;e3
表示循环的每次迭代要发生的事情。如果 e2
缺失,则该表达式被认为在每次迭代中都非零,只有 s
中的 break
语句(或对 exit
或 abort
等非返回函数的调用)才会结束循环。
C 语言有四种类型的跳转语句。第一个是 goto
语句,很少使用,其形式为
goto
标识符 ;
此语句将控制流转移到用给定标识符标记的语句。该语句必须与 goto
在同一个函数中。
第二个是 break 语句,其形式为
break
;
在迭代语句和 switch
语句中使用,将控制流传递到 while、do-while、for 或 switch 后面的语句。
第三个是 continue 语句,其形式为
continue
;
在迭代语句的子语句中使用,将控制流传递到子语句结束之前的那个位置。在 for
语句中,迭代表达式 (e3
上面) 将在控制表达式 (e2
上面) 计算之前执行。
第四种类型的跳转语句是 return
语句,其形式为
return
表达式opt ;
此语句从函数返回。如果函数返回类型是 void
,则该函数可能不会返回值;否则,表达式代表要返回的值。