C#程序设计简明教程-第2章C#语言基础(结构化).ppt_第1页
C#程序设计简明教程-第2章C#语言基础(结构化).ppt_第2页
C#程序设计简明教程-第2章C#语言基础(结构化).ppt_第3页
C#程序设计简明教程-第2章C#语言基础(结构化).ppt_第4页
C#程序设计简明教程-第2章C#语言基础(结构化).ppt_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,章节目录,上一页,下一页,第2章 C#语言基础 (结构化) 2.3 分支结构 有两种选择语句实现流程的改变: if语句,用于判断特定的条件能否满足,用于单分支选择,也可以通过嵌套实现多分支选择。 switch语句,用于多分支选择。,2,章节目录,上一页,下一页,1.单分支选择结构(if语句) 语句执行的过程中根据不同的情况进行选择其中一个分支执行。格式为: if (布尔条件表达式) 内嵌语句序列1; else 内嵌语句序列2; 最简单的为: if (布尔条件表达式) 内嵌语句序列;,图5-1 if语句的流程图,3,章节目录,上一页,下一页,【例5-1】某商店为了吸引顾客,采取以下优惠活动:所购商品在1000元以下的,打9折优惠;所购商品多于1000元的,打8折优惠。试采用if语句实现该优惠.。,4,章节目录,上一页,下一页,代码:private void button1_Click(object sender, System.EventArgs e) double k,m; k=double.Parse(tCost.Text); if (k1000) m=k*0.9; else m=k*0.8; pCost.Text=m.ToString( ); ,5,章节目录,上一页,下一页,ifelseif语句 格式: if(条件1)语句1 else if(条件2)语句2 else 语句n+1 应注意ifelse的配对问题。在默认情况下,else语句总是和最近的if语句配对。下面通过分数等级转换例子了解if语句的嵌套方法。,6,章节目录,上一页,下一页,【例2-7】将百分制成绩转换为五分制成绩。转换标准如下:90分以上为“优秀”,80分以上为“良”,70分以上为“中”,60分以上为“及格”,60分以下为“不及格”。程序运行结果如图5-5左图所示。,图5-5 成绩转换设计,7,章节目录,上一页,下一页,程序运行时,单击【转换】按钮执行的代码如下: private void button1_Click(object sender, System.EventArgs e) int k =int.Parse(textBox2.Text); if(k90) textBox1.Text=“优“; else if(k80) textBox1.Text=“良“;,8,章节目录,上一页,下一页,else if(k70) textBox1.Text=“中“; else if(k60) textBox1.Text=“及格“; else if (k60) / 此指令可省略 textBox1.Text=“不及格“; 上例中使用了if语句的嵌套实现,其中因为条件判断后只用一个语句,如“textBox1.Text=“良“;”,所以,可以省略 ,当存在多条语句时,要使用 表示为一个语句块。,9,2 switch语句,格式: switch(表达式) case 常量表达式1: 语句1; break; case 常量表达式2: 语句2; break; case 常量表达式n: 语句n; break; default: 语句n+1;break; /注:各分支语句中的break不能省,10,1. break语句 break语句用于停止贯穿语句的执行。即在switch语句结构中,break语句用于选择分支的语句运行。 2. default标签 在switch语句中,常常用到default标签来处理不满足case语句的值,定义default标签可以增强处理相应的异常,章节目录,上一页,下一页,11,【例2-8】某航空公司规定在旅游的旺季79月份,如果订票数超过20张,票价优惠15%,20张以下,优惠5%;在旅游的淡季15月份、10月份、11月份,如果订票数超过20张,票价优惠30%,20张以下,优惠20%;其他情况一律优惠10%设计程序,根据月份和订票张数决定票价的优惠率(如图2-8),章节目录,上一页,下一页,图2-8 计算优惠价,12,该问题属于多分支选择问题。该问题中旅游的淡季15月份、10月份、11月份的优惠率一样,在switch语句中,这几种情况可以使用同一种操作;旅游的旺季79月份的优惠率一样,可以使用同一种操作 。 “计算优惠率”按钮实现代码如下。 private void button1_Click(object sender, System.EventArgs e) int mon; int sum; mon=Convert.ToInt32(textBox1.Text); sum=Convert.ToInt32(textBox2.Text);,章节目录,上一页,下一页,13,switch(mon) case 1: case 2: case 3: case 4: case 5: case 10: case 11: if(sum20) label3.Text=“优惠率为30%“; else label3.Text=“优惠率为20%“; break; case 7:,章节目录,上一页,下一页,14,case 8: case 9: if(sum20) label3.Text=“优惠率为15%“; else label3.Text=“优惠率为5%“; break; default: label3.Text=“优惠率为10%“; break; ,章节目录,上一页,下一页,15,补充:使用单选按钮与复选框控件 1 单选按钮(RadioButton) 单选按钮也叫选项按钮,为用户提供从多个选项中选择一个选项的功能,因此单选按钮顾名思义是一种“多选一”的控件。,章节目录,上一页,下一页,16,(1)RadioButton控件的常用属性 Checked属性 该属性用来设置或返回单选按钮是否被选中。 Text属性:显示文字 AutoCheck属性 如果AutoCheck属性被设置为true(默认),那么当选择该单选按钮时,将自动清除该组中所有其他单选按钮。 Appearance属性 该属性用来获取或设置单选按钮控件的外观。,17, Text属性 该属性用来设置或返回单选按钮控件内显示的文本 。 (2)RadioButton控件的常用事件 Click事件 当单击单选按钮时,将把单选按钮的Checked属性值设置为true,同时发生Click事件。 CheckedChanged事件 当Checked属性值更改时,将触发CheckedChanged事件。,18,(1) 设计窗体和设置属性,章节目录,上一页,下一页,图5-11 显示日期 图5-12 显示时间,【例5-6】设计Windows应用程序,单击【显示】按钮,根据对单选按钮的选择,分别显示日期或时间。程序运行结果如图5-11和图5-12所示。,19,(2) 设计代码 private void button1_Click(object sender, System.EventArgs e) if(ShowDate.Checked) / 显示日期 lblDateTime.Text=DateTime.Now.Year+“年“+DateTime.Now.Month+“月“ +DateTime.Now.Day+“日“; if(ShowTime.Checked) / 显示时间 lblDateTime.Text=DateTime.Now.Hour+“时“+DateTime.Now.Minute+“分“ +DateTime.Now.Second+“秒“; ,章节目录,上一页,下一页,20,2 复选按钮(CheckBox) 复选框顾名思义可以同时选中多个选项,也就是说用户可以在窗口同时选中多个复选框,这是其和单选按钮的区别。,章节目录,上一页,下一页,21,CheckBox控件 常用属性,(1)CheckBox控件的常用属性 TextAlign属性 该属性用来设置控件中文字的对齐方式。 ThreeState属性 该属性用来返回或设置复选框是否能表示三种状态 (选中,不选中,中间).(默认为false,只有两种状态) Checked属性 该属性值用来设置或返回复选框是否被选中. Text属性:显示文字 CheckState属性 该属性用来设置或返回复选框的状态。,22,(2)CheckBox控件的常用事件 CheckBox控件的常用事件有Click和CheckedChanged等,其含义及触发时机与单选按钮完成一致。,23,使用分组框控件(GroupBox) 如同窗体一样,分组框(GroupBox)控件也是一种容器类控件,在分组框控件内部的控件可以随分组框一起移动,并且受到分组框控件某些属性(Visible、Enabled)的控制。 在多数情况下只需使用分组框控件将功能类似或关系紧密的控件分成可标识的控件组,而不必响应分组框控件的事件。需要修改的通常是分组框控件的Text或Font属性以说明框内控件的功能或作用,从而起修饰窗体的作用。,24,解决一些如1+2+100之类需多次同样运算的问题, 用循环语句解决. C#中提供了四种不同的循环机制: for循环 while循环 dowhile循环 foreach循环,章节目录,上一页,下一页,2.4 循环结构程序设计,25,1 for语句的语法格式 for循环语句格式为: for (表达式1; 表达式2; 表达式3) 循环语句序列; 表达式1用于参与循环条件变量的初始化,仅执行一次; 表达式2为条件判断表达式,即每次循环体开始之前,判断该表达式是否成立,如果成立,进入下一次循环,否则,循环结束; 表达式3用于参与循环条件变量的运算,一般为递增或递减的循环计数器。 循环语句序列用于描述重复执行的语句,当语句序列中仅含有一条语句时,花括号可以省略。,章节目录,上一页,下一页,26,流程图如图所示。 该结构中,表达式1、 表达式2、表达式3是可选的, 但应该注意死循环的发生。 如表达式2省略,并且不采 用转移语句,会导致死循环 的发生。 可以在循环体中的任何位 置放置break语句来强制终止 for循环随时跳出for循环。 break语句通常包含于if语句中。,章节目录,上一页,下一页,27,【例】计算1+2+3+100。使用for语句实现。 分析:该问题属于重复执行加法的问题,并且参与运算的两个操作数不断的按规律增加。该类问题可以通过循环进行解决。 (1) 建立项目 (2) 设计窗体 (3) 设计代码,章节目录,上一页,下一页,28,在窗体设计图上,双击按钮button1编写【计算】按钮的Click(单击)事件代码为: private void button1_Click(object sender, System.EventArgs e) int sum; sum=0; for(int k=1;k=100;k=k+1) sum=sum+k; label1.Text=“从1加到100值为“+sum.ToString();,章节目录,上一页,下一页,29,2 while循环语句 可以用于不知道循环次数的情况,语法格式 while (布尔条件表达式) 语句序列; 布尔条件表达式是每次循环开始前进行判断的条件,当条件表达式的值为真时,执行循环;否则,退出循环。,章节目录,上一页,下一页,30,while循环的执行过程: 首先计算条件表达式的值,如果为真(True),则执行后面的循环体,执行完后,再开始一个新的循环;如果为假(False),则终止循环,执行循环体后面的语句。,章节目录,上一页,下一页,31,(1) 可以在循环体中的任何位置放置break语句来强制终止while循环随时跳出while循环。break语句通常包含于if语句中。 (2)可以在循环体中的任何位置放置continue语句,在整个循环体没有执行完就重新判断条件,以决定是否开始新的循环。continue语句通常包含于if语句中。 例2.9:计算1000以内的偶数之和,章节目录,上一页,下一页,32,3 dowhile循环 dowhile循环与while之间的差别在于:while循环的测试条件在每一次循环开始时执行,而dowhile循环的测试条件在每一次循环体结束时进行判断。 一般格式为: do 语句序列; while (布尔条件表达式),章节目录,上一页,下一页,33,【例】使用dowhile语句实现5!。 窗体及控件的属性设计见操作。 【计算】按钮的Click(单击)事件代码为: private void button1_Click(object sender, System.EventArgs e) int sum; sum=1; int k=1;,章节目录,上一页,下一页,34,do sum=sum*k; k=k+1; while(k=5); label1.Text=“从1加到5值为“+sum.ToString(); / 将sum显式转换为字符串 ,章节目录,上一页,下一页,35,4 循环的嵌套 一个循环(称为“外循环”)的循环语句序列内包含另一个循环(称为“内循环” 。 三种循环(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;,章节目录,上一页,下一页,36,【例】编程实现九九乘法表。 分析:本例中实现每一个一位数i显示从1乘到i,对于i的取值要从取到9,所以可以使用两重循环实现,程序设计如图6-8所示。使用label1控件实现乘法表的显示。,章节目录,上一页,下一页,图6-8 九九乘法表,37,本例使用两重循环实现,其中外层循环实现乘法表中第二乘数i取值范围为1到9,内层循环在外层循环的基础上计算第一个乘数k的取值范围为1到i,其乘积以及表达式在label控件中显示。 【九九乘法表】按钮的Click(单击)事件代码为: private void button1_Click(object sender, System.EventArgs e) label1.Text=“; string s=“; int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论