版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 第3章 程序流控制主讲人: XXX 面向对象程序设计程序流控制循环语句循环语句 2选择语句选择语句 1跳转语句跳转语句 32022-3-733.1.1 if语句3.1.2 if . else语句3.1.3 条件运算符3.1.4 if . else if . else语句3.1.5 if语句的嵌套3.1.6 switch语句3.1.7 复合赋值运算符3.1.8 条件逻辑运算符和逻辑运算符3.1 选择语句2022-3-74l if语句根据表达式的值选择要执行的语句。if语句的一般表示形式为:if (表达式) 语句块;l if语句的执行方式如下:如果表达式的值为true,则执行语句块,否则语句块不
2、会被执行。语句块可为一条或多条语句。3.1.1 if语句2022-3-75l 问题描述:编写一个程序(见图3.1),计算一门课程学生的考试通过率。随机抽取10名学生,分别输入每一学生考试的结果,通过了考试的学生,则向如图3.1所示的文本框中输入“1”,对没有通过考试的学生,则向图3.1所示的文本框中输入“2”。每次输入后都单击【确定】按钮。到第10次时,将显示如图3.2所示的消息框。任务3.1 考试结果分析2022-3-76l if . else语句的一般表示形式为:if (表达式) 语句块1;else 语句块2;l if . else语句的执行方式如下:如果表达式的值为true,则执行语句块
3、1,如果表达式的值为false,则执行语句块2。l 语句块1、语句块2可为一条或多条语句,如果为一条语句,则大括号可以省略。3.1.3 if else语句2022-3-77 问题描述:创建如图3.4所示的应用程序,要求用户在文本框中输入1到10之间的一个数字。然后单击【猜猜】按钮产生一个随机数字,用户将被告知所选择的数字是否正好等于这个随机数。任务3.2 猜字游戏2022-3-78private void button1_Click(object sender, EventArgs e) int userGess = Int32.Parse(textBox1.Text); Random rnd
4、 = new Random(); /创建随机数对象创建随机数对象 double correctNumber = rnd.NextDouble() * 10; /调用对象的调用对象的NextDouble方法方法 correctNumber = Math.Round(correctNumber);/Math类的类的Round方法。方法。 string str = 正确的数字是 + correctNumber + , + 你猜的数字是 + userGess + n; if (userGess = correctNumber) MessageBox.Show(str + 祝贺你猜中了); else M
5、essageBox.Show(str + 欢迎你参加竟猜,下次再来); textBox1.Text = ; 任务3.2 猜字游戏2022-3-79NextDouble:产生一个介于0.0和1.0之间的随机浮点数。Math.Round(r)方法:返回最接近r的整数,如果在两个数中间,取偶数。Math.Round(r,n)方法:返回具有n位有效小数位数、最接近r值的数。任务3.2 猜字游戏2022-3-710l ? : 运算符称为条件运算符,它又称为三元运算符,因为它是C#语言中唯一使用三个操作数的运算符。l 条件运算符(? :)根据第一个表达式的值返回后两个表达式的值中的某一个值。条件运算符用于
6、下列形式的条件表达式中: 表达式1 ? 表达式2 : 表达式3l 条件表达式的执行方式如下:首先计算表达式1。如果表达式1的值为true,则计算表达式2,并作为条件表达式的结果。否则计算表达式3,并作为条件表达式的结果。3.1.3 条件运算符2022-3-711 问题描述:设计如图3.5所示的窗体,运行程序,在三个文本框中分别输入小时数、分钟数及秒数,单击【设置并显示按钮】,在窗体上以时间格式(hh:mm:ss PM/AM)显示所设置的时间。任务3. 3 显示时间2022-3-712 实训内容:编写一个应用程序,确定餐厅服务生的消费数。小费金额是账单的 15%,最小值为1元。 实训要求:要有输
7、入格式异常处理。实训任务一2022-3-713l 可以使用if语句的else子句指定在表达式的值为false时执行的语句。在前面的猜数示例程序中,应用程序比较用户猜的数和随机产生的数,这里只有两种可能的情况:用户猜对了或猜错了。如果测试的情况多于两种,可以组合使用if和else。l 其一般形式为:if (表达式1) 语句块1;else if (表达式2) 语句块2;.else 语句块n;3.1.4 ifelse if else语句2022-3-714l if . else if . else语句的执行方式为:按照 if . else语句测试中条件表达式的出现顺序测试这些条件,如果if语句中的表
8、达式为true,则执行if 后的相应语句。如果表达式为false,则按顺序计算else if后的表达式。当某个else if 后的表达式计算为true时,则执行相应的语句。如果没有任何表达式计算为true而且有一个else,则执行else后的语句。语句结束执行后,执行传递到组合 if . else的末尾。3.1.4 ifelse if else语句2022-3-715 问题描述:某公司雇员的工资包括基本工资和销售提成。销售提成根据表3.2给出的方式计算。 编写一应用程序,输入雇员编号、基本工资和销售额,计算工资,并输出工资单。任务3.4 工资发放2022-3-7163.1.5 if 语句的嵌套
9、 什么时候需要使用嵌套的 if 语句? if 语句可以分为哪几个组成部分?有多于一个条件判断时可以嵌套使用有多于一个条件判断时可以嵌套使用 if if;条件部分和分支部分,分支部分可以有两个。条件部分和分支部分,分支部分可以有两个。2022-3-717在if语句中又包含一个或多个if语句时,称为if语句的嵌套。l 任务任务3.53.5:求数的绝对值:求数的绝对值 问题描述:有一函数: -x (x0)编写一程序,输入一个x值,输出y值。注意:在嵌套的if语句中,如果if与else的数目不相等,为实现程序设计者的意图,可以加大括号来确定与else部分相关联的if(如以上加底纹部分形式的if语句)。
10、3.1.5 if 语句的嵌套2022-3-718l switch语句是分支选择语句,它通过switch 表达式的值与多个不同值进行比较选择相应的case语句来处理多个选择。switch中的表达式是一个整型或字符串型表达式。l switch语句的一般表示形式为:switch (表达式)case 常数1: 语句块1 break;.case 常数n: 语句块n break;default: 语句块n+1 break;3.1.6 switch语句2022-3-719 实训内容:编写一个应用程序,实现一个简易的计算器。 实训要求:要有输入格式异常处理。实训任务二2022-3-720l 复合赋值运算符对两
11、个操作数执行指定的运算,然后将结果值赋予左操作数指定的变量。其一般形式为: x op= y;其中 op代表二元运算符(包括+、-、*、/、%)。复合赋值运算符产生的效果与x = x op y相同。如x+=y与x=x+y效果相同。3.1.7 复合赋值运算符2022-3-721l 以下是C#提供的几种条件逻辑运算符和逻辑运算符:&(条件AND,条件与)、&(逻辑AND,逻辑与)|(条件OR,条件或)、|(逻辑OR,逻辑或)!(逻辑NOT,逻辑非)(逻辑XOR,逻辑异或)3.1.8 条件逻辑运算符和逻辑运算符2022-3-7223.2.1 while语句3.2.2 do . while语句3.2.3
12、 for语句3.2.4 嵌套循环3.2 循环语句2022-3-723l while语句有条件地执行嵌入语句零次或多次。l while语句的一般格式为:while (布尔表达式) 嵌入语句 lwhile语句的执行方式如下:计算布尔表达式;如果布尔表达式的值为true,执行嵌入语句,嵌入语句结束执行后,控制将转到 while语句的开头,再次执行while语句;如果布尔表达式的值为false,结束while语句的执行。3.2.1 while语句2022-3-724l do . while语句有条件地执行一个嵌入语句一次或多次,该语句的一般格式为:do 嵌入语句; while (布尔表达式) l do
13、 . while语句的执行方式如下:(1)执行嵌入语句。(2)嵌入语句结束执行后,计算布尔表达式的值。如果布尔表达式的值为true,控制将转到do语句的开头,再次执行嵌入语句。否则,结束do语句的执行。3.2.2 do while语句2022-3-725l for语句计算一个初始化表达式序列,然后,当某个条件为真时,重复执行某个嵌套语句并计算一个迭代表达式序列。l for语句的一般格式:for (初始值设定项; 循环条件; 迭代表达式) 嵌入语句;3.2.3 for 语句2022-3-726l 初始值设定项:初始化循环计数器的表达式或赋值语句的逗号分隔列表。l 循环条件:必须是一个布尔表达式,
14、此表达式用于条件测试以决定是否执行循环。l 迭代表达式:递增或递减循环计数器的表达式语句,也可包含一个用逗号分隔的语句表达式列表。l for语句的执行方式如下。 (1)执行初始值设定项(按变量初始值设定项或语句表达式的编写顺序执行它们)。此步骤只执行一次。 (2)计算循环条件。如果计算循环条件的值为true,则执行嵌入语句。执行完嵌入语句后,则按顺序计算迭代表达式,然后从计算上一个步骤中的循环条件开始,执行另一次迭代。l 如果计算循环条件的值为false,结束for语句的执行。3.2.3 for 语句2022-3-727 实训内容:编写一个应用程序,实现阶乘的计算。 实训要求:实训实现阶乘计算
15、,要对输入整数进行异常处理。实训任务三2022-3-728问题描述; 某人新开一个账户,请编写一应用程序,输入开始存入的金额(本金)、年利率以及存款周期(年)。假定所有的利息收入都重新存入账户,请计算并输出在存款周期里,每年年终的账面金额。其金额的计算公式为a=p(1+r)n。其中,p是最开始存入的金额(本金),r是年利率,n是年数,a是在第n年年终的复利存款。任务3.7 计算复利存款(一)2022-3-729 打开前面创建的项目TestWhile,运行程序,输入数据,单击【计算】按钮,结果如图3.11所示。 运行结果表明嵌入语句一次也没有执行,因为n为-8,year为1,表达式year =
16、n的值为false。为了使嵌入语句至少被执行一次,可使用do . while语句。请用do . while语句完成计算复利存款的任务。任务3.8 计算复利存款(二)2022-3-730任务3.9:打印字母表及对应的ASCII码(一) 编写一应用程序,打印字母表及对应的ASCII码。任务3.10:打印字母表及对应的ASCII码(二)问题描述: 修改以上“任务3.9:打印字母表及对应的ASCII码(一)”程序,让应用程序在每一行上输出5个字符。解决方案:(1)修改以上程序,我们也可在for循环中增加另一个for循环,让应用程序在每一行上输出5个字符。(2)运行程序,结果如图3.15所示。任务3.9
17、、3.102022-3-7313.3.1 goto语句3.3.2 break语句3.3.3 continue语句3.3.4 运算符的优先级3.3 跳转语句与要点2022-3-732在程序中goto语句将程序控制直接传递给标记语句。它的形式为下列之一:goto 标识符;goto语句的具体应用。 1. 使用goto跳出嵌套循环 2. 使用goto跳转到一个switch-case标签 3.3.1 goto语句2022-3-7331. 使用goto跳出嵌套循环任务3.11:找数问题描述;在一数组中查找是否存在某一数,如果在数组中找到该数,则显示找到该数,否则显示该数没有被找到。3.3.1 goto语句
18、2022-3-7342. 使用goto跳转到一个switch-case标签 任务3.12:自动售货机l 问题描述;有一自动售货机,在出售的商品中有罐装大、中、小号冰红茶及瓶装纯净水,小号冰红茶的单价为2元,中号冰红茶的单价为小号冰红茶单价的2倍,大号冰红茶的单价为小号冰红茶单价的3倍,瓶装纯净水的单价与小号冰红茶的单价相同。试用switch . case语句写出一程序,当用户选择其中一种商品时,计算用户应付金额。l当用户输入0时表示选择瓶装纯净水,1表示小号冰红茶,2表示中号冰红茶,3表示大号冰红茶。3.3.1 goto语句2022-3-735l break语句可用来退出最近的封闭switch、while、do或for语句。break语句的一般格式为:break;lbreak语句将控制转到最近的封闭switch、while、do或for语句的结束点,从而结束最近的封闭switch、while、do或for语句执行。如果break语句不是由switch、while、do或for语句封闭,则发生编译时错误。l当多个switch、while、do或for语句彼此嵌套时,break语句只应用于最里层的语句。若要在多个嵌套层之间转移控制,必须使用goto语句。3.3.2 break语
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025中国地震应急搜救中心公开招聘应届毕业生5人高频重点提升(共500题)附带答案详解
- 2025下半年黑龙江绥化学院招聘32人高频重点提升(共500题)附带答案详解
- 2025下半年湖南常德市澧县部分事业单位招聘9人高频重点提升(共500题)附带答案详解
- 2025下半年浙江温州市鹿城区事业单位招聘(选调)拟聘高频重点提升(共500题)附带答案详解
- 2025下半年江苏盐城市射阳县机关和事业单位选调8人历年高频重点提升(共500题)附带答案详解
- 2025下半年广东清远市直事业单位招聘31人历年高频重点提升(共500题)附带答案详解
- 2025下半年安徽池州市贵池区事业单位招聘工作人员41人高频重点提升(共500题)附带答案详解
- 2025下半年四川广元剑阁县委组织部人社局考试招聘事业单位工作人员高频重点提升(共500题)附带答案详解
- 2025下半年四川事业单位联考招聘历年高频重点提升(共500题)附带答案详解
- 2025上半年福建省宁德福安市事业单位招聘89人及历年高频重点提升(共500题)附带答案详解
- 农业比较效益低的成因及应对
- 2020年住房和城乡建设行业人员继续教育(八大员继续教育)土建质量员继续教育考试题库集
- 直观教具在小学英语词汇教学中的运用初探
- 《制冷设备原理与维修》期末试卷试题及参考答案
- 供水管道工程现场管理办法
- 酒店委托管理模式下的财务治理
- 简单员工考勤表
- 新年贺卡模板
- 国家开放大学《管理英语4》章节测试参考答案
- 云南省普通初中学生成长记录—基本素质评价表(表一)
- 香港会计报表(中英文对照)
评论
0/150
提交评论