1.for语句的一般格式 for(变量赋初值]:[循环继续条件]:[循环变量增值] 循环体语句组;} 2.for语句的执行过程 执行过程如图5-1所示 (1)求解“变量赋初值”表达式。 (2)求解“循环继续条件”表达式。如果其值非0,执 行(3);否则,转至(4)。 (3)执行循环体语句组,并求解“循环变量增值”表达 式,然后转向(2) (4)执行for语句的下一条语句 3.说明 (1)“变量赋初值”、“循环继续条件”和“循环变量 增值”部分均可缺省,甚至全部缺省,但其间的分号不能省 略
1.for语句的一般格式 for([变量赋初值];[循环继续条件];[循环变量增值]) { 循环体语句组;} 2.for语句的执行过程 执行过程如图5-1所示。 (1)求解“变量赋初值”表达式。 (2)求解“循环继续条件”表达式。如果其值非0,执 行(3);否则,转至(4)。 (3)执行循环体语句组,并求解“循环变量增值”表达 式,然后转向(2)。 (4)执行for语句的下一条语句。 3.说明 (1)“变量赋初值”、“循环继续条件”和“循环变量 增值”部分均可缺省,甚至全部缺省,但其间的分号不能省 略
(2)当循环体语句组仅由一条语句构成时,可以不 使用复合语句形式,如上例所示 (3)“循环变量赋初值”表达式,既可以是给循环 变量赋初值的赋值表达式,也可以是与此无关的其它表 达式(如逗号表达式)。 例如,for(Sum=0;i<=100;计++)sum+=i; for(sum=0,=1;i<=100;1++)sum+=i (4)“循环继续条件”部分是一个逻辑量,除一般 的关系(或逻辑)表达式外,也允许是数值(或字符) 表达式
(2)当循环体语句组仅由一条语句构成时,可以不 使用复合语句形式,如上例所示。 (3)“循环变量赋初值”表达式,既可以是给循环 变量赋初值的赋值表达式,也可以是与此无关的其它表 达式(如逗号表达式)。 例如,for(sum=0;i<=100;i++) sum += i; for(sum=0,i=1;i<=100;i++) sum += i; (4)“循环继续条件”部分是一个逻辑量,除一般 的关系(或逻辑)表达式外,也允许是数值(或字符) 表达式
4. while语句 (1)一般格式 while(循环继续条件) 循环体语句组 (2)执行过程 执行过程如图5-2所示 )求解“循环继续条件”表达式。如果其值为非0, 转2);否则转3) 2)执行循环体语句组,然后转1) 3)执行whle语句的下一条。 显然, while循环是for循环的一种简化形式(缺省 变量赋初值”和“循环变量增值”表达式)
4.while语句 (1)一般格式 while(循环继续条件) { 循环体语句组;} (2)执行过程 执行过程如图5-2所示。 1)求解“循环继续条件”表达式。如果其值为非0, 转2);否则转3)。 2)执行循环体语句组,然后转1)。 3)执行while语句的下一条。 显然,while循环是for循环的一种简化形式(缺省 “变量赋初值”和“循环变量增值”表达式)
[案例53]用whle语句求1~100的累计和 /*案例代码文件名:AL53C* *程序功能:求1~100的累计和* maino inti-=1-,sum-0;/*初始化循环控制变量i和累计器sum*/ while( K<=100) i sum +=1 /*实现累加* 1+十 *循环控制变量i增1*/ printf( sum=%d\n", sum) 程序演示 程序运行情况如下: sum=5050
[案例5.3] 用while语句求1~100的累计和。 /*案例代码文件名:AL5_3.C*/ /*程序功能:求1~100的累计和*/ main() { int i=1,sum=0; /*初始化循环控制变量i和累计器sum*/ while( i<=100 ) { sum += i; /*实现累加*/ i++; /*循环控制变量i增1*/ } printf(“sum=%d\n”,sum); } [程序演示] 程序运行情况如下: sum=5050
循环嵌套 (1)循环语句的循环体内,又包含另一个完整的循 环结构,称为循环的嵌套。循环嵌套的概念,对所有高 级语言都是一样的 (2)for语句和 while语句允许嵌套, do-while语句也 不例外。 Return
5.循环嵌套 (1)循环语句的循环体内,又包含另一个完整的循 环结构,称为循环的嵌套。循环嵌套的概念,对所有高 级语言都是一样的。 (2)for语句和while语句允许嵌套,do-while语句也 不例外。 [Return]