跳转到内容

C 编程/语句

来自维基教科书,开放的书籍,为一个开放的世界
上一页:代码库 C 编程 下一页:C 语言参考

一个语句是给计算机的指令,指示计算机执行特定操作,例如显示到屏幕或收集输入。计算机程序由一系列语句组成。

在 C 语言中,语句可以是以下任何一种

带标签的语句

[编辑 | 编辑源代码]

语句可以由一个标签引导。C 语言中有三种类型的标签。

一个简单的标识符后面跟着一个冒号 (:) 就是一个标签。通常,这个标签是 goto 语句的目标。

switch 语句中,存在 casedefault 带标签的语句。

具有以下形式的语句

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 语句匹配,但在第二个代码段中,大括号迫使 elseexpression 为控制的 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 语句(或对 exitabort 等非返回函数的调用)才会结束循环。

跳转语句

[编辑 | 编辑源代码]

C 语言有四种类型的跳转语句。第一个是 goto 语句,很少使用,其形式为

goto 标识符 ;

此语句将控制流转移到用给定标识符标记的语句。该语句必须与 goto 在同一个函数中。

第二个是 break 语句,其形式为

break ;

在迭代语句和 switch 语句中使用,将控制流传递到 while、do-while、for 或 switch 后面的语句。

第三个是 continue 语句,其形式为

continue ;

在迭代语句的子语句中使用,将控制流传递到子语句结束之前的那个位置。在 for 语句中,迭代表达式 (e3 上面) 将在控制表达式 (e2 上面) 计算之前执行。

第四种类型的跳转语句是 return 语句,其形式为

return 表达式opt ;

此语句从函数返回。如果函数返回类型是 void,则该函数可能不会返回值;否则,表达式代表要返回的值。

上一页:代码库 C 编程 下一页:C 语言参考
华夏公益教科书