空语句
C 最简单的就是空语句, 本身只包含一个分号. 用于一些要求一条语句, 但并不 需要执行任务的时候
while ((ch = getchar()) != EOF) ; /* 空语句 */
表达式语句
赋值是一种操作, 和加减法一样在表达式内进行, 只要在表达式后面加上一个分号, 就可以把表达式转变为语句.
a++;
++ 操作符增加变量 a 的值, 这就是它的 副作用(side effect)
代码块
代码块就是位于一对花括号之内的可选的声明和语句列表:
{ declarations statements }
if 语句
语法如下
if (expression) statement else statemnt
while 语句
while (expression) statement
break 和 continue 语句
break 语句用于永久终止循环
continue 用于永久的终止当前的那次循环
这两条语句只对内层的循环起作用, 无法影响外层循环
while 语句执行过程
略
for语句
for (expression1; expression2; expression3) statement
其中 statement 为循环体, expression1 为 初始化 部分, 它只在循环开始时执行 一次, expression2 称为 条件 部分, 它在每次循环前走执行一次, 满足条件则继续 执行循环体. expression3 称为 调整 部分, 它在循环体每次执行完毕, 在条件部分 即将执行之前执行. 这个三个表达式都是可选的. 如省略条件, 则测试条件始终未真
for 语句中也可以使用 break 和 continue 语句.
do语句
do statement while(expression);
do 和 while类似, 只是它的测试在循环体执行之后才进行.
switch语句
switch(expression) statement
贯穿语句列表之间的是一个或多个 case 标签:
case constant-expresion:
switch 语句执行过程中, 首选计算 expression 的值; 然后与 case 标签 值与 expression 的比对, 执行与之匹配的 case 标签的语句
switch 语句执行中若遇到 break 语句, 执行流则会立即跳到语句列表的末尾.
当 switch 表达式的值不匹配所有 case 标签的值时, default 子句后面 的运距会被执行. 每个 switch 语句中放上一条 default 子句是个好习惯
goto 语句
要使用 goto 语句, 你必须在你希望跳转的语句前面机上语句标签.语句标签 就是标识符后面加个冒号
label:
包含这些标签的 goto 语句可以出现在同一函数的中的任何位置.
goto 语句对于跳出多层嵌套的循环也可能非常合适
while (condtion){ while(condition2){ while(condition3){ if (some disater) goto quit; } } } quit: ;
编程提示
- 在一个没有循环体的循环中, 用一个分号表示空语句, 并让它独占一行
- for 循环的可读性币 while 循环强
- 在每个 switch 语句中都使用 default 子句