您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > 循环结构程序设计教案
第6章循环结构程序设计第一讲for循环语句、while循环语句、do…while循环、循环的嵌套、跳转语句教学目标1.掌握使用循环结构设计程序的方法。2.掌握for、while、do…while语句的使用。3.掌握循环嵌套的执行过程以及循环嵌套在程序中的应用。4.掌握几种跳转语句的使用方法。教学过程预备知识在编写程序过程中,往往出现相同类型操作需要重复出现,如实现1+2+…+100,则需要做99次加法,这类问题使用循环语句解决,可以使问题变得简单。即循环语句用于实现语句块的重复执行。根据问题的具体情况,C#中提供了四种不同的循环机制:for循环、while循环、do…while循环和foreach循环。这里介绍前三种循环机制,foreach循环将在数组中介绍。6.1for循环语句for循环常常用于已知循环次数的情况,使用该循环时,测试是否满足某个条件,如果满足条件,则进入下一次循环,否则,退出该循环。6.1.1for语句的语法格式for循环语句格式为:for(表达式1;表达式2;表达式3){循环语句序列;}其中表达式1用于参与循环条件变量的初始化,该表达式仅执行一次;表达式2为条件判断表达式,即每次循环体开始之前,判断该表达式是否成立,如果成立,进入下一次循环,否则,循环结束;表达式3用于参与循环条件变量的运算,一般为递增或递减的循环计数器。循环语句序列用于描述重复执行的语句,当语句序列中仅含有一条语句时,花括号可以省略。流程图如图6-1所示。该结构中,表达式1、表达式2、表达式3是可选的,但应该注意死循环的发生。如表达式2省略,并且不采用转移语句,会导致死循环的发生。可以在循环体中的任何位置放置break语句来强制终止for循环——随时跳出for循环。break语句通常包含于if语句中。6.1.2for循环语句的使用根据下面的实例,了解for语句的工作流程及实现方法。【例6-1】计算1+2+3+…100。使用for语句实现。分析:该问题属于重复执行加法的问题,并且参与运算的两个操作数不断的按规律增加。该类问题可以通过循环进行解决。(1)建立项目(2)设计窗体(3)设计代码在窗体设计图上,双击按钮button1编写【计算】按钮的Click(单击)事件代码为:privatevoidbutton1_Click(objectsender,System.EventArgse){intsum;sum=0;for(intk=1;k=100;k=k+1){sum=sum+k;}label1.Text=从1加到100值为+sum.ToString();}程序的运行结果如图6-2所示的左图,单击“计算”按钮,将在标签上显示运行结果。【例6-2】计算n!,假设n=10。分析:该例实现阶乘的运算,可以使用改变乘数的值进行实现,使用循环可以方便的实现该类问题。程序的运行结果如图6-3左图所示。编写【计算】按钮的Click(单击)事件代码为:privatevoidbutton1_Click(objectsender,System.EventArgse){intsum,k;sum=1;for(k=1;k=10;k++){sum=sum*k;}textBox1.Text=sum.ToString();}6.2while循环语句与for循环语句比较,while语句使用的频率要低一些,它可以用于不知道循环次数的情况;用于在循环时判断是否满足某个条件。每一次在循环的顶部进行检测循环是否继续,当循环的条件为假时,退出循环。6.2.1while循环语句的语法格式while循环语句的格式为:while(布尔条件表达式){语句序列;}布尔条件表达式是每次循环开始前进行判断的条件,当条件表达式的值为真时,执行循环;否则,退出循环。该语句结构的流程图如图6-4所示。说明如下:①布尔条件表达式是一个具有boolean值的条件表达式,为循环的条件。②作为循环体的语句序列可以是简单语句、复合语句和其他结构语句。③while循环的执行过程:首先计算条件表达式的值,如果为真(True),则执行后面的循环体,执行完后,再开始一个新的循环;如果为假(False),则终止循环,执行循环体后面的语句。④可以在循环体中的任何位置放置break语句来强制终止while循环——随时跳出while循环。break语句通常包含于if语句中。⑤可以在循环体中的任何位置放置continue语句,在整个循环体没有执行完就重新判断条件,以决定是否开始新的循环。continue语句通常包含于if语句中。6.2.2while循环语句的使用【例6-3】设有一张厚为xmm,面积足够大的纸,将它不断地对折。试问对折多少次后,其厚度可达珠穆朗玛峰的高度(8844.43m)。设对折后纸的厚度为hmm,计数器为n。在没有对折时,纸厚为xmm,每对折一次,其厚度是上一次的2倍,在未到达8844.43m时,重复对折。在程序中,纸的厚度就是对折后纸的厚度,所以用一个变量h。建立应用程序用户界面与设置对象属性,如图6-5所示。【计算】按钮的Click(单击)事件代码为:privatevoidbutton1_Click(objectsender,System.EventArgse){intn=0;floath;h=float.Parse(textBox1.Text);while(h8844430){n=n+1;h=2*h;}textBox2.Text=n.ToString();}程序运行结果如图6-5所示。6.3do…while循环do…while循环非常类似于while循环。一般情况下,可以相互转换使用。它们之间的差别在于while循环的测试条件在每一次循环开始时执行,而do…while循环的测试条件在每一次循环体结束时进行判断。同样的,do…while可以解决一些循环问题,但使用的频率较少。6.3.1do…while的语法格式do…while语法的一般格式为:do{语句序列;}while(布尔条件表达式)6.3.2do…while的使用【例6-4】使用do…while语句实现1+2+3+…100。窗体及控件的属性设计见【例6-1】。【计算】按钮的Click(单击)事件代码为:privatevoidbutton1_Click(objectsender,System.EventArgse){intsum;sum=0;intk=1;do{sum=sum+k;k=k+1;}while(k=100);label1.Text=从1加到100值为+sum.ToString();//将sum显式转换为字符串}6.4循环的嵌套当一个循环(称为“外循环”)的循环语句序列内包含另一个循环(称为“内循环”),称为循环的嵌套,这种语句结构称为多重循环结构。内循环中还以包含循环,形成多层循环(循环嵌套的层数理论上无限制)。三种循环(while循环、do…while循环、for循环)可以互相嵌套。在多重循环中,需要注意的是循环语句所在循环的层数。如以下代码:intsum=0;for(inti=1;i=10;i=i+1)for(intk=1;k=i;k=k+1)sum=sum+k;【例6-6】编程实现九九乘法表。分析:本例中实现每一个一位数i显示从1乘到i,对于i的取值要从1取到9,所以可以使用两重循环实现,程序设计如图6-8所示。使用label1控件实现乘法表的显示。实现每一个一位数i显示从1乘到i,即:i=11*ii=21*i;2*i;i=31*i;2*i;3*i;…..i=91*i;2*i;3*i;….9*I每一步中又进行了重复的乘法运算,k*Ik=1k=i本例的界面设计如图6-8右图,使用label1控件实现乘法表的显示。本例使用两重循环实现,其中外层循环实现乘法表中第二乘数i取值范围为1到9,内层循环在外层循环的基础上计算第一个乘数k的取值范围为1到i,其乘积以及表达式在label控件中显示。运行结果如图6-8左图所示。【九九乘法表】按钮的Click(单击)事件代码为:privatevoidbutton1_Click(objectsender,System.EventArgse){label1.Text=;strings=;intsum;for(inti=1;i10;i=i+1){s=;for(intk=1;k=i;k=k+1){sum=k*i;s=s+k.ToString()+×+i.ToString()+=+sum.ToString()+;;}label1.Text+=s+\n;//显示并换行}}6.5跳转语句使用跳转语句,可以使程序执行跳转到程序中其它部分。C#中提供四种转移语句:goto语句、break语句、continue语句、return语句。1.goto语句goto语句可以将程序控制直接转移给标签制定的语句。但由于goto语句改变了程序的正常流程,使得程序特别容易出错,所以尽量不要用。而且,用goto语句实现的循环完全可以用循环语句实现,因此,goto语句很少使用。2.break语句在第5章中介绍了break在switch中的用法,break语句也可以用于退出所在的最近循环,使用break语句时,将结束循环,执行后面的语句。break不能放在循环语句或switch语句后,否则发生错误。3.continue语句continue语句用于循环语句中,类似于break语句,但仅从当前的循环迭代中退出,然后执行下一次迭代循环。【例6-10】使用计数器循环语句了解continue语句的使用,要求输出大于5的数本例使用控制台程序实现。【计算】按钮的Click(单击)事件代码为:staticvoidMain(string[]args){for(inti=1;i=10;i=i+1){if(i5)continue;Console.WriteLine(i);}Console.ReadLine();}本程序的运行结果为5678910该例中当i5时通过continue退出本次循环,所以运行结果中不显示1、2、3、4数字。操作任务任务认识计算机一、任务要求设计程序,输出所有的“水仙花数“。程序运行结果如下:二、操作步骤1.创建项目。2.设计应用程序界面。3.设置对象的属性。4.编写事件代码。“求水仙花数”的Click事件代码:privatevoidbutton1_Click(objectsender,System.EventArgse){inti=100,a,b,c;while(i=999){a=i/100;b=(i-a*100)/10;c=i-a*100-b*10;if(a*a*a+b*b*b+c*c*c==i)label1.Text+=i.ToString()+是水仙花数+\n;i=i+1;}经验与技巧注意:“水仙花数”是指一个三位数,其余各位数的立方和等于该数,如:153=13+53+33.巩固拓展练习题:课后练习第106页4、5、6、7题课程小结本次课主要介绍了用于循环结构中的多种循环语句以及循环语句的嵌套方法和跳转语句的使用,通过学习能够设计循环结构的应用程序。第二讲列表框和组合框、使用计时器控件教学目标1.掌握使列表框和组合框的常用属性、方法、事件及使用。2.掌握计时器的使用。教学过程预备知识6.5列表框和组合框6.5.1列表框(ListBox)ListBox控件为用户提供了选项的列表,用户可以从列表中进行选择输入。如果项目数目超过列表框可显示的数目,控件上将自动出现滚动条,它是一种规范输入的好工具。1.列表框的常用属性、方法和事件2.列表框应用实例【例6-11】计算并输出从sum=1+…+(k-1)+k。满足sum1000是退出循环。分析:该例属于循环中语句转移的情况,本例中使用listBox控件用于显示sum的值,使用button控件实现该事件。程序设计如图6-12所示。【计算】按钮的Click(单击)事件代码为:privatevoidbutton1_Click(objectsender,
本文标题:循环结构程序设计教案
链接地址:https://www.777doc.com/doc-5685168 .html