版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1章 程序设计语言与程序设计方法 第2章 Visual C#概述 第3章 C#语法基础 第4章 顺序结构程序设计 第5章 选择结构程序设计 第6章 循环结构程序设计 第7章 面向对象编程技术 第8章 继承,第9章 数组与自定义类型 第10章 菜单、工具栏与状态栏 第11章 文件操作 第12章 数据库技术 第13章 ActiveX控件 第14章 异常处理与跟踪调试 第15章 开发Web应用程序 第16章 部署应用程序,下一页,Visual C#程序设计教程,上一页,在编写程序过程中,往往出现相同类型操作需要重复出现,如实现1+2+100,则需要做99次加法,这类问题使用循环语句解决,可以使问题
2、变得简单。即循环语句用于实现语句块的重复执行。根据问题的具体情况,C#中提供了四种不同的循环机制:for循环、while循环、dowhile循环和foreach循环。这里介绍前三种循环机制,foreach循环将在数组中介绍。 6.1 for循环语句 for循环常常用于已知循环次数的情况,使用该循环时,测试是否满足某个条件,如果满足条件,则进入下一次循环,否则,退出该循环。,章节目录,上一页,下一页,6.1.1 for语句的语法格式 for循环语句格式为: for (表达式1; 表达式2; 表达式3) 循环语句序列; 其中表达式1用于参与循环条件变量的初始化,该表达式仅执行一次;表达式2为条件判
3、断表达式,即每次循环体开始之前,判断该表达式是否成立,如果成立,进入下一次循环,否则,循环结束;表达式3用于参与循环条件变量的运算,一般为递增或递减的循环计数器。循环语句序列用于描述重复执行的语句,当语句序列中仅含有一条语句时,花括号可以省略。,章节目录,上一页,下一页,流程图如图6-1所示。 该结构中,表达式1、 表达式2、表达式3是可选的, 但应该注意死循环的发生。 如表达式2省略,并且不采 用转移语句,会导致死循环 的发生。可以在循环体中的 任何位置放置break语句来强 制终止for循环随时跳出 for循环。break语句通常包 含于if语句中。,章节目录,上一页,下一页,图6-1 f
4、or循环流程图,6.1.2 for循环语句的使用 根据下面的实例,了解for语句的工作流程及实现方法。 【例6-1】计算1+2+3+100。使用for语句实现。 分析:该问题属于重复执行加法的问题,并且参与运算的两个操作数不断的按规律增加。该类问题可以通过循环进行解决。 (1) 建立项目 (2) 设计窗体 (3) 设计代码,章节目录,上一页,下一页,在窗体设计图上,双击按钮button1编写【计算】按钮的Click(单击)事件代码为: private void button1_Click(object sender, System.EventArgs e) int sum; sum=0; fo
5、r(int k=1;k=100;k=k+1) sum=sum+k; label1.Text=从1加到100值为+sum.ToString();,章节目录,上一页,下一页,程序的运行结果如图6-2所示的左图,单击“计算”按钮,将在标签上显示运行结果。,章节目录,上一页,下一页,图6-2 程序运行结果,【例6-2】计算n!,假设n=10。 分析:该例实现阶乘的运算,可以使用改变乘数的值进行实现,使用循环可以方便的实现该类问题。程序的运行结果如图6-3左图所示。,章节目录,上一页,下一页,图6-3 计算n!,编写【计算】按钮的Click(单击)事件代码为: private void button1_
6、Click(object sender, System.EventArgs e) int sum,k; sum=1; for(k=1;k=10;k+) sum=sum*k; textBox1.Text=sum.ToString(); ,章节目录,上一页,下一页,6.2 while循环语句 与for循环语句比较,while语句使用的频率要低一些,它可以用于不知道循环次数的情况;用于在循环时判断是否满足某个条件。每一次在循环的顶部进行检测循环是否继续,当循环的条件为假时,退出循环。 6.2.1 while循环语句的语法格式 while循环语句的格式为: while (布尔条件表达式) 语句序列;
7、布尔条件表达式是每次循环开始前进行判断的条件,当条件表达式的值为真时,执行循环;否则,退出循环。该语句结构的流程图如图6-4所示。,章节目录,上一页,下一页,说明如下: 布尔条件表达式是一个具有boolean值的条件表达式,为循环的条件。 作为循环体的语句序列可以是简单语句、复合语句和其他结构语句。 while循环的执行过程:首先计算条件表达式的值,如果为真(True),则执行后面的循环体,执行完后,再开始一个新的循环;如果为假(False),则终止循环,执行循环体后面的语句。,章节目录,上一页,下一页, 可以在循环体中的任何位置放置break语句来强制终止while循环随时跳出while循环
8、。break语句通常包含于if语句中。 可以在循环体中的任何位置放置continue语句,在整个循环体没有执行完就重新判断条件,以决定是否开始新的循环。continue语句通常包含于if语句中。,章节目录,上一页,下一页,图6-4 while程序流程图,6.2.2 while循环语句的使用 【例6-3】设有一张厚为x mm,面积足够大的纸,将它不断地对折。试问对折多少次后,其厚度可达珠穆朗玛峰的高度(8844.43 m)。 设对折后纸的厚度为h mm,计数器为n。在没有对折时,纸厚为x mm,每对折一次,其厚度是上一次的2倍,在未到达8844.43 m时,重复对折。在程序中,纸的厚度就是对折后
9、纸的厚度,所以用一个变量h。,章节目录,上一页,下一页,建立应用程序用户界面与设置对象属性,如图6-5所示。,章节目录,上一页,下一页,图6-5 用户界面及程序运行结果,章节目录,上一页,下一页,【计算】按钮的Click(单击)事件代码为: private void button1_Click(object sender, System.EventArgs e) int n=0; float h; h=float.Parse(textBox1.Text); while (h8844430) n = n + 1; h = 2 * h ; textBox2.Text = n.ToString();
10、 程序运行结果如图6-5所示。,章节目录,上一页,下一页,6.3 dowhile循环 dowhile循环非常类似于while循环。一般情况下,可以相互转换使用。它们之间的差别在于while循环的测试条件在每一次循环开始时执行,而dowhile循环的测试条件在每一次循环体结束时进行判断。同样的,dowhile可以解决一些循环问题,但使用的频率较少。 6.3.1 dowhile的语法格式 dowhile语法的一般格式为: do 语句序列; while (布尔条件表达式),章节目录,上一页,下一页,6.3.2 dowhile的使用 【例6-4】使用dowhile语句实现1+2+3+100。 窗体及控
11、件的属性设计见【例6-1】。 【计算】按钮的Click(单击)事件代码为: private void button1_Click(object sender, System.EventArgs e) int sum; sum=0; int k=1;,章节目录,上一页,下一页,do sum=sum+k; k=k+1; while(k=100); label1.Text=从1加到100值为+sum.ToString(); / 将sum显式转换为字符串 ,章节目录,上一页,下一页,6.5 循环的嵌套 当一个循环(称为“外循环”)的循环语句序列内包含另一个循环(称为“内循环”),称为循环的嵌套,这种语
12、句结构称为多重循环结构。内循环中还以包含循环,形成多层循环(循环嵌套的层数理论上无限制)。三种循环(while循环、dowhile循环、for循环)可以互相嵌套。在多重循环中,需要注意的是循环语句所在循环的层数。如以下代码: int sum=0; for(int i=1;i=10;i=i+1) for(int k=1;k=i;k=k+1) sum=sum+k;,章节目录,上一页,下一页,【例6-6】编程实现九九乘法表。 分析:本例中实现每一个一位数i显示从1乘到i,对于i的取值要从取到9,所以可以使用两重循环实现,程序设计如图6-8所示。使用label1控件实现乘法表的显示。,章节目录,上一页
13、,下一页,图6-8 九九乘法表,本例的界面设计如图6-8右图,使用label1控件实现乘法表的显示。本例使用两重循环实现,其中外层循环实现乘法表中第二乘数i取值范围为1到9,内层循环在外层循环的基础上计算第一个乘数k的取值范围为1到i,其乘积以及表达式在label控件中显示。运行结果如图6-8左图所示。 【九九乘法表】按钮的Click(单击)事件代码为: private void button1_Click(object sender, System.EventArgs e) label1.Text=; string s=; int sum;,章节目录,上一页,下一页,for(int i=1;
14、i10;i=i+1) s=; for(int k=1;k=i;k=k+1) sum=k*i; s=s+k.ToString()+i.ToString()+=+sum.ToString()+; label1.Text+=s+n; / 显示并换行 ,章节目录,上一页,下一页,6.4 跳转语句 使用跳转语句,可以使程序执行跳转到程序中其它部分。C#中提供四种转移语句:goto语句、break语句、continue语句、return语句。 1. goto语句 goto语句可以将程序控制直接转移给标签制定的语句。但由于goto语句改变了程序的正常流程,使得程序特别容易出错,所以尽量不要用。而且,用got
15、o语句实现的循环完全可以用循环语句实现,因此,goto语句很少使用。,章节目录,上一页,下一页,2. break语句 在第5章中介绍了break在switch中的用法,break语句也可以用于退出所在的最近循环,使用break语句时,将结束循环,执行后面的语句。break不能放在循环语句或switch语句后,否则发生错误。 3. continue语句 continue语句用于循环语句中,类似于break语句,但仅从当前的循环迭代中退出,然后执行下一次迭代循环。 【例6-10】使用计数器循环语句了解continue语句的使用,要求输出大于5的数,章节目录,上一页,下一页,本例使用控制台程序实现。
16、【计算】按钮的Click(单击)事件代码为: static void Main(string args) for(int i=1;i=10;i=i+1) if(i5) continue; Console.WriteLine(i); Console.ReadLine( ); ,章节目录,上一页,下一页,本程序的运行结果为 5 6 7 8 9 10 该例中当i5时通过continue退出本次循环,所以运行结果中不显示1、2、3、4数字。,章节目录,上一页,下一页,6.5 列表框和组合框 6.5.1 列表框(ListBox) ListBox控件为用户提供了选项的列表,用户可以从列表中进行选择输入。如
17、果项目数目超过列表框可显示的数目,控件上将自动出现滚动条,它是一种规范输入的好工具。 1. 列表框的常用属性、方法和事件 2. 列表框应用实例 【例6-11】计算并输出从sum=1+(k-1)+k。满足sum1000是退出循环。,章节目录,上一页,下一页,分析:该例属于循环中语句转移的情况,本例中使用listBox控件用于显示sum的值,使用button控件实现该事件。程序设计如图6-12所示。,章节目录,上一页,下一页,图6-12 计算sum的值,【计算】按钮的Click(单击)事件代码为: private void button1_Click(object sender, System.E
18、ventArgs e) int k=1; int sum=0; while(k1000) break; ,章节目录,上一页,下一页,6.5.2 组合框(ComboBox) 组合框是一个文本框和一个列表框的组合。与列表框不同的是列表框只能在给定的列表项中选择,而组合框除了可在给定的列表项中选择还可以直接在文本框中输入(DropDownStyle属性被设置DropDownList时除外)。 1. ComboBox常用属性和事件 2. ComboBox应用实例,章节目录,上一页,下一页,【例6-12】要求单击【开始】按钮,将两个组合框中指定的年份范围内的所有闰年输出到列表框中。图6-14为显示195
19、52005年之间的所有闰年的结果。,章节目录,上一页,下一页,图6-14 程序运行结果,(1) 设计程序界面。 (2) 设置对象属性。 (3) 编写程序代码。 private void btnStart_Click(object sender, System.EventArgs e) / 如果任一组合框中没有选定年份,则不执行任何操作 if(cboStart.SelectedIndex=-1|cboEnd.SelectedIndex=-1) return ;,章节目录,上一页,下一页,int yearStart=int.Parse(cboStart.SelectedItem.ToString(
20、 ); int yearEnd=int.Parse(cboEnd.SelectedItem.ToString ( ); if(yearStartyearEnd) return; lstOut.Items.Clear( ); / 清除上次判断显示的内容 for(int i=yearStart;i=yearEnd;i=i+1) if(i%4=0 / 将闰年的年份追加到列表框 ,章节目录,上一页,下一页,【清除】按钮被单击时执行的事件代码如下: private void btnClear_Click(object sender, System.EventArgs e) lstOut.Items.Cl
21、ear( ); / 清空列表 ,章节目录,上一页,下一页,6.6 使用计时器控件(Timer) 计时器(Timer)控件在工具箱的图标为,它是一种无需用户干预,按一定时间间隔周期性地自动触发事件的控件。一般用来检查系统时间,判断是否该执行某项任务,也可以用于后台处理。 Timer控件在程序运行时是不可见的,所以将其添加到窗体后显示在窗体设计器下方的组件窗格中。 6.6.1 计时器控件的属性、方法和事件 Timer控件的主要属性、方法和事件见表6-4。 在计时器的Tick事件中设计的程序代码,会在该事件不断被触发的过程中,重复执行,从这一点看,计时器具有循环语句的功能。,章节目录,上一页,下一页
22、,(2) 设置对象属性。,章节目录,上一页,下一页,图6-19 运行结果,添加代码以保证窗口被激活时txtNumber控件获得焦点,代码如下: private void Form1_Activated(object sender, System.EventArgs e) txtNumber.Focus( ); / 输入文本框获得焦点 ,章节目录,上一页,下一页,用上面同样方法,选中txtNumber(textBox3)控件,在如图6-24所示的窗口中双击KeyPress,为控件txtNumber添加KeyPress(键盘事件)代码如下: private void txtNumber_KeyPr
23、ess(object sender, System. Windows. Forms. KeyPressEventArgs e) if(e.KeyChar=r) / 按Enter键则执行下面的代码(开始倒计时) if(txtNumber.Text=),章节目录,上一页,下一页,return; remainder=Convert.ToUInt32(txtNumber.Text)*60; / 将分钟换算为秒 timer2.Enabled=false; / 第2个计时器终止工作 timer1.Enabled=true; / 第1个计时器开始工作 lblTimeEnd.Visible=true; / 显
24、示控件 txtTimeEnd.Visible=true; / 显示控件 lblTimeStart.Text=开始时间:; / 更换标签标题 ,章节目录,上一页,下一页,双击控件timer2添加事件代码如下: private void timer2_Tick(object sender, System.EventArgs e) / 在txtTimeStart文本框中显示时间 txtTimeStart.Text=DateTime.Now.Hour.ToString( )+: +DateTime.Now.Minute.ToString( )+: +DateTime.Now.Second.ToString( ); ,章
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 东方红印刷厂印刷品期限合同协议合同二篇
- 小程序用户隐私保护合同协议
- 制衣厂采购制度
- 学院书资料采购制度
- 幼儿园内部物品采购制度
- 小学资产采购管理制度
- 带量采购合理用药制度
- 公司采购准则制度
- 公司采购兼出纳管理制度
- 患者十大安全目标
- 2025-2026学年人教版四年级年级数学下册第三单元《运算律》素养测评卷(含答案)
- 充装站安全绩效考核制度
- 2025年高考贵州卷物理真题(试卷+解析)
- 2026年高速公路安全驾驶培训
- 特殊作业奖惩制度范本
- 医务人员薪酬待遇制度
- 2026年2026江苏省人民医院心血管内科打字员招聘1人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 改革文学介绍
- GB/T 46871-2025二氧化碳捕集、运输和地质封存提高原油采收率的二氧化碳封存
- 2025广东新能源储能市场现状分析及投资布局规划分析研究报告
- 新会计法修订解读(会计学会)
评论
0/150
提交评论