1、第五章第五章循环结构循环结构-I2目标目标 u 理解为什么使用循环结构理解为什么使用循环结构u 熟练掌握熟练掌握while循环的使用循环的使用u 熟练掌握熟练掌握do-while循环的使用循环的使用u 理解理解while 和和 do-while 循环的区别循环的区别3C 语言中的各种循环语言中的各种循环whiledowhilefor4whilewhile 循环的一般语法:循环的一般语法:while(表达式表达式)语句语句;5示例1#includevoid main()int num=1,result;while(num=100)result+=num;num+;printf(result%d
2、n,result);6示例2#includevoid main()int num=1,result;while(num=10)result=num*10;printf(%d 10%d n,num,result);num+;输出:11010210203103041040510506106071070810809109010101007用VC环境的单步执行演示循环过程8do-whiledo-while 循环的一般语法:循环的一般语法:do 语句段语句段 while(表达式表达式);9do-while 循环示例循环示例#includevoid main()int number=5,guess;pri
3、ntf(猜一个介于猜一个介于 1 与与 10 之间的数之间的数n);do printf(请输入您猜测的数:请输入您猜测的数:);scanf(%d,&guess);if(guess number)printf(太大太大n);else if(guess number)printf(太小太小n);while(guess!=number);printf(您猜中了!您猜中了!答案为答案为%dn,number);10用VC环境的单步执行演示循环过程11while 和和 do-whilewhile(循环条件)循环体;do循环体;while(循环条件);第六章第六章循环结构循环结构 II13目标目标u 熟练使
4、用熟练使用for循环循环u 理解理解 break 和和 continue 语句的用法语句的用法u 熟练使用嵌套循环熟练使用嵌套循环14for 循环循环 for 循环的一般语法:循环的一般语法:for(表达式表达式1 ;表达式表达式2 ;表达式表达式3 )语句段;语句段;1、计算表达式、计算表达式1的值,通常为循环变量赋初值;的值,通常为循环变量赋初值;2、计算表达式、计算表达式2的值,即判断循环条件是否为真,若值为真的值,即判断循环条件是否为真,若值为真则执行循环体一次,则执行循环体一次,否则跳出循环;否则跳出循环;3、计算表达式、计算表达式3的值,这里通常写更新循环变量的赋值表达的值,这里通
5、常写更新循环变量的赋值表达式,然后转回第式,然后转回第2步重复执行;步重复执行;15示例#include void main()int number,count,factorial=1;printf(n 请输入任意一个正整数:请输入任意一个正整数:);scanf(%d,&number);for(count=1;count=number;count+)factorial=factorial*count;printf(n%d的阶乘的阶乘=%dn,number,factorial);请输入任意一个正整数:55的阶乘=12016用VC环境的单步执行演示循环过程17逗号运算符逗号运算符for(i=0,j
6、=max;i=max;i+,j-)printf(“n%d+%d=%d”,i,j,i+j);ufor语句中的三个表达式都可以是逗号表达式语句中的三个表达式都可以是逗号表达式u逗号表达式就是通过逗号表达式就是通过“,”运算符隔开的多个表达式组成运算符隔开的多个表达式组成的表达式的表达式u逗号表达式从左往右计算。逗号运算符在逗号表达式从左往右计算。逗号运算符在 C 语言运算符语言运算符中的优先级最低中的优先级最低18break 语句语句ubreak语句可以改变程序的控制流语句可以改变程序的控制流ubreak语句用于语句用于do-while、while、for循环中时,可循环中时,可使程序终止循环而执
7、行循环后面的语句使程序终止循环而执行循环后面的语句 ubreak语句通常在循环中与条件语句一起使用。若条件语句通常在循环中与条件语句一起使用。若条件值为真,将跳出循环,控制流转向循环后面的语句值为真,将跳出循环,控制流转向循环后面的语句u如如果果已已执执行行break语语句句,就就不不会会执执行行循循环环体体中中位位于于 break 语句后的语句语句后的语句u在多层循环中,一个在多层循环中,一个break语句只向外跳一层语句只向外跳一层19示例#include void main()int number,count,factorial;count=factorial=1;printf(n 请输
8、入任意一个正整数:请输入任意一个正整数:);scanf(%d,&number);while(1)factorial=factorial*count;count+;if(countnumber)break;printf(n%d的阶乘的阶乘=%dn,number,factorial);请输入任意一个正整数:55的阶乘=12020用VC环境的单步执行演示循环过程21continue 语句语句ucontinue 语句只能用在循环里语句只能用在循环里ucontinue 语句的作用是跳过循环体中剩语句的作用是跳过循环体中剩余的语句而执行下一次循环余的语句而执行下一次循环u对于对于while和和do-whi
9、le循环,循环,continue 语句执行之后的动作是条件判断;对于语句执行之后的动作是条件判断;对于for循环,随后的动作是变量更新循环,随后的动作是变量更新 22continue 语句语句while()continue;while()break;跳出整个循环继续下一次循环23示例#include void main()int number,sum;sum=0;while(1)printf(n 请输入任意一个正整数:请输入任意一个正整数:);scanf(%d,&number);if(number=0)break;if(number%2!=0)continue;sum+=number;prin
10、tf(sum is%dn,sum);24用VC环境的单步执行演示循环过程25嵌套循环嵌套循环 一个循环体语句中又包含另一个循一个循环体语句中又包含另一个循环语句,称为循环嵌套。实际上前面介环语句,称为循环嵌套。实际上前面介绍的三个循环语句(绍的三个循环语句(for、while、do-while)本身就相当于一条语句,程序中)本身就相当于一条语句,程序中只要能放语句的地方,就可以放这三个只要能放语句的地方,就可以放这三个循环语句。循环语句。26下面我们来看几种循环嵌套的格式:while()while()while()dowhile();for(;)while()dodowhile();while();for(;)for(;)dofor(;)while