空语句
C最简单的语句就是空语句,它本身只包含一个分号。
空语句适用的场合就是语法要求出现一条完整的语句,但并不需要它执行任何任务。
表达式语句
C并不存在专门的赋值语句、而是统一用“表达式语句”代替。
表达式后面添加一个分号,就可以把表达式转变为表达式语句。
代码块
代码块就是位于一对花括号之内的可选的声明和语句列表。
代码块可以用于要求出现语句的地方,它允许我们在语法要求只出现一条语句的地方使用多条语句。
{
declaration
statement
}
if语句
if(expression)
statement
else
statement
如果expression的值为真,那么就执行第一个statement,否则就跳过它。如果存在else子句,它后面的statement只有当expression的值为假的时候才会执行。
注意,上面的两个statement部分都可以是代码块。
当if语句嵌套出现时,就会出现“悬空的else”问题。
if (int i > 1)
if (int j > 2)
printf("i > 1 and j > 2\n");
else
printf("no they are not\n");
规定:else子句从属于最靠近它的不完整的if语句。
while语句
while (expression)
statement
break语句用于永久终止循环。
continue语句用于永久终止当前的那次循环。
for语句
for (expression1 ; expression2 ; expression3)
statement
- expression1为初始化部分,它只在循环开始时执行一次。
- expression2为条件部分,它在循环体每次执行前都要执行一次。
- expression3为调整部分,它在循环体每次执行完毕,在条件部分即将执行之前执行。
- statement称为循环体。
break语句立即退出循环。
continue语句把控制流直接转移到调整部分。
do语句
do
statement
while(expression)
switch语句
switch (expression)
{
statement-list
}
其中,expression的结果必须是整型值。
贯穿于语句列表之间的是一个或多个case标签,形式如下:
case constant-expression:
statement
每个case标签都必须具有唯一的值。
constant-expression是常量表达式,是指在编译期间进行求值的表达式,它不能是任何变量。
break语句
如果在switch语句的执行中遇到了break语句,执行流就会立即跳到语句列表的末尾。
在C语言所有的switch语句中,97%在每个case中都有一条break语句。
break语句的实际效果是把语句列表划分为不同的部分。
default语句
把下面这个标签
default:
statement
写在任何一个case标签可能出现的位置。
当switch表达式的值并不匹配所有case标签的值时,这个default子句后面的语句就会执行。
goto语句
首先,需要强调的是,尽量避免使用goto语句。
goto 语句标签;
要使用goto语句,我们必须在希望跳转的语句前面加上语句标签。
语句标签就是标识符后面加个冒号。