while(1){
...
if(表达式)break;
...
}:
2.do-while语句
do-while语句用来描述do-while型循环结构,它的一般形式为;
do
语句
while(表达式);
其中的语句是do-while语句的循环体。do-while语句的执行过程是:
(1)执行do-while语句的循环体;
(2)求 while之后的表达式的值;
(3)测试表达式的值,当值为非0,转步骤1(从而构成循环);如值为0,则结束do-while语句。
与while语句一样,当循环体由多个语句组成时,必须把它们书写成复合语句。有些用while语句描述的循环计算,也能用do-while语句描述。然而,并非总是如此。两者的重要区别在于:执行循环体时,对作为循环条件的表达式的求值和测试的时间不同。while语句对作为循环条件的表达式求值和测试在执行循环体之前,而do-While语句对作为循环条件的表达式求值和测试在执行循环体之后。对于do-while语句,它的循环体至少被执行一次,而while语句的循环体在作为循环条件的表达式值一开始就为0的情况下,就一次也未被执行。如能保证while语句中的作为循环条件的表达式在第一次被求值后,总是非0,则把该循环条件移至循环体执行之后求值和测试,能起同样的控制作用。在这种情况下,while语句就能改写成如while语句。如 while语句中的作为循环条件的表达式值可能初次求值就为 0时,则它不能简单地改写成do-while语句。另外要特别指出,分号是do-while语句的结束符,不能省略。
for语句
for语句是C语言中最灵活、使用最广泛的循环结构语句。如以最一般意义下考虑循环,一个完整的循环应包含对有关变量赋初值部分、控制循环的条件、一个要循环计算的操作、每次循环后对有关变量的修正等四部分组成。拉语句就是从这一般意义下表达循环结构的语
句。for语句的一般形式为
for(表达式1;表达式2;表达式3)
语句
其中的语句是for语句的循环体。输语句的执行过程是:
(1)计算表达式1;
(2)计算表达式 2的值,并测试其值为 0或非 0。若值为非 0,转步骤 3;否则结束 for语句;
(3)执行循环体;
(4)计算表达式3;
(5)转向步骤2。
for语句的一般形式也可等价地用以下形式的while语句来表达:
表达式1;
while(表达式2) {
语句
表达式3;
}
由for语句的执行过程可知,for语句的表达式1的作用是对控制循环的有关变量赋初值;表达式2是控制循环的条件;表达式3用于修正有关变量;语句是循环体。所以for语句按各部分的功能,可以形象地写成以下形式:
for(赋初值的表达式;控制循环条件的表达式;修正变量的表达式)
完成循环计算的语句
正确使用for语句,需注意以下几种情况:
(1) for语句的一般形式中,表达式1、表达式2和表达式3都可以省略。如表达式1省略,表示该for语句没有赋初值部分,或前面的程序段已为有关变量赋了初值,或确实没有特别的初值;如表达式2省略,表示循环条件永远为真,可能循环体内有控制转移语句转出缺语句;表达式3省略,表示没有修正部分,对变量的修正已在循环体内一起完成。不管表达式1、表达式2和表达式3省略情况如何,其中两个分号都不能省略。对于三个表达式都省略情况,for语句呈以下形式:
for(;;)
语句
(2)表达式l、表达式2和表达式3都可包含逗号运算符由多个表达式组成。
4. break语句
break语句除能用于switch语句外,还常用于循环语句中。执行循环结构中的break语句,控制就从包含它的循环结构中退出。break语句通常与if语句结合,构成一个结束循环的条件。
5.continue语句
continue语句只用于循环语句中。通常复杂的循环计算中,循环语句的循环体是一个语句序列,中间会有一个包含continue语句的且语句。当指定的条件成立时,continue语句就被执行,这时continue语句之后的语句就不再执行,控制立即进入下一轮循环。