欢迎来到天天文库
浏览记录
ID:6783819
大小:352.00 KB
页数:16页
时间:2018-01-25
《第05章 循环程序结构设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第5章循环程序结构设计在编写程序过程中,往往出现相同类型操作需要重复出现,如实现1+2+…+100,则需要做99次加法,这类问题使用循环语句解决,可以使问题变得简单。即循环语句用于实现语句块的重复执行。根据问题的具体情况,C#中提供了四种不同的循环机制:lfor循环lwhile循环ldo…while循环lforeach循环5.1for循环语句for循环常常用于已知循环次数的情况,使用该循环时,测试是否满足某个条件,如果满足条件,则进入下一次循环,否则,退出该循环。5.1.1for语句的语法格式格式:for(表
2、达式1(initializer);表达式2(condition);表达式3(iterator)){controlled-statement}其中表达式1的用于参与循环条件变量的初始化,该表达式仅执行一次;表达式2为条件判断表达式,即每次循环体开始之前,进行判断该表达式是否成立,如果成立,进入下一次循环,否则,循环结束;表达式3用于参与循环条件变量的运算,一般为递增或递减的循环计数器。流程图如图5-1。 16 图5-1for循环流程图该结构中,表达式1、表达式2、表达式3是可选的,但应该注意死循环的
3、发生。如表达式2省略,并且不采用转移语句,会导致死循环的发生。可以在〈循环体〉中的任何位置放置Break语句来强制终止For循环——随时跳出For循环。Break语句通常用于If语句之后。可以在循环体中的任何位置放置Continue语句,在整个循环体没有执行完就重新开始新的循环。Continue语句通常用于If语句之后。5.1.2for循环语句的使用根据下面的实例,了解for语句的工作流程及实现方法。【例5-1】计算1+2+3+…100。使用for语句实现。分析:该问题属于重复执行加法的问题,并且参与运算的两
4、个操作数不断的的按规律增加。该类问题可以通过循环进行解决。使用一个标签label1和一个按钮button1进行窗体设计。窗体及控件的基本属性设计如图3-9左图。在窗体设计图上,双击按钮button1编写相应的方法。代码如下。privatevoidbutton1_Click(objectsender,System.EventArgse){intsum;sum=0;for(intk=1;k<=100;k++){sum=sum+k;}label1.Text="从加到100值为"+sum.ToString();//将
5、sum显式转换为字符串}程序的运行结果如图5-2左图,单击“计算”按钮,将在标签上显示运行结果,如图5-2右图。 16 图5-2程序运行结果privatevoidbutton1_Click(objectsender,System.EventArgse){intsum;sum=0;for(intk=1;k<=100;k++){sum=sum+k;}label1.Text="从加到100值为"+sum.ToString();//将sum显式转换为字符串}该例中,首先声明一个用于存放和的变量sum,然后
6、通过循环改变sum的值。for循环的执行过程如下:首先执行第一个表达式“intk=1;”,初始化用于循环的变量的值,需要注意的是该表达式仅执行一次。然后执行第二个表达式“k<=100;”,如果该表达式的值为True,则进入循环,当循环体执行过程中遇到“continue”命令或“}”时,就结束本次循环,进行执行第三个表达式“k++;”,再次对表达式二进行判断,进入下次循环;如果该表达式的遇到“break”命令或表达式的值为False时,将结束循环。“continue”命令和“break”命令在后面讲述。本例中,
7、共执行循环100次。在第101次时,结束循环。上例中循环体中的语句为简单语句,同样,循环体中的语句可以为复杂语句,如下例中计算“1!+2!+…n!”的值。【例5-2】使用for语句实现计算“1!+2!+…n!”的值。分析,该题中,首先要计算m!的值,然后使用上题中的方法将值累加。在这个过程中,使用两个变量sum1、sum2,用于存放计算的值。界面设计如图5-3。其中numericUpDown1控件Maxinum属性设置为1000000000。图5-3程序运行结果 16 双击button1按钮,添加
8、相应的代码实现累加功能。代码如下。privatevoidbutton1_Click(objectsender,System.EventArgse){intsum1,sum2;sum1=0;sum2=1;intn=(int)numericUpDown1.Value;//类型转换for(intk=1;k<=n;k++){sum2=1;//每次求阶乘前应把sum2置为1for(intm=1;m<=k;m+
此文档下载收益归作者所有