第4章 循环语句和goto语句
4.1 while语句
语法格式:
while (<表达式>) 语句;
在这个语句中,表达式描述循环的条件,如果表达式的值为0,就停止语句,否则继续执行语句部分。语句部分可以是一句或复合语句。
4.2 for语句
for语句和while语句的最大区别在于for循环语句会对循环控制变量进行初始化。
语法格式如下:
for (表达式1;表达式2;表达式3) <语句>
表达式1只在for语句开始时被执行一次,一般用于设置循环的初始状态;表达式2说明循环的条件;表达式3用于修改循环控制变量的状态。
有趣的是,表达式123都是可以为空的,只要两个“;”存在,for循环语句就合法。
4.3 do while语句
无论是for语句还是while语句,对循环控制条件的判断都在语句之前,但有时候不经过语句是无法判断的,所以就有do while语句,语法格式如下:
do <语句> while <表达式>;
首先执行语句部分,然后计算表达式。表达式不等于0,则继续执行语句部分。
4.4 逗号表达式
由逗号分隔的两个表达式在语法上可以看成一个整体,称为逗号表达式。由逗号分隔的子表达式按照从左至右的顺序依次求值,而表达式的值等于其中最右侧子表达式的值。例如:
r=(a=x,b=y,c=z);
等价于:
a=x; b=y; r=c=z;
4.5 循环语句的嵌套
这可以说是循环语句的精华了。但并不困难,不过是循环中的语句里也有循环语句罢了。用到的地方很多,这里不再举例。
4.6 循环语句中的非常规控制
1.break
程序在循环中遇到break语句时就立即结束对循环语句的执行,从循环体内直接跳出循环。
- continue
continue是循环语句专用的一种跳转语句,它的作用是使程序跳过循环体中的其他语句而进行下一轮的循环。
注意,break和continue都只会影响多重循环中它所在的一层循环。
4.7 goto语句
goto是一种无条件跳转语句,可以使程序的执行转向同一函数中的任意语句。
goto语句是和语句标号一起使用的。语句标号在程序中标志一条语句的位置。使用标号时,需要将语句标号的标识符放在一条语句前面,并用一个冒号将这个标识符与它所标志的语句分开。比如:
A:x=y+z;
A就是语句”x=y+z”的标号。
goto的用法则是:
goto A;
注意,标号和goto语句必须在同一个函数中,至于函数,是我们下一章详细介绍的内容。