面向对象程序设计-程序流控制资料课件

上传人:痛*** 文档编号:241846415 上传时间:2024-07-30 格式:PPT 页数:41 大小:1.81MB
返回 下载 相关 举报
面向对象程序设计-程序流控制资料课件_第1页
第1页 / 共41页
面向对象程序设计-程序流控制资料课件_第2页
第2页 / 共41页
面向对象程序设计-程序流控制资料课件_第3页
第3页 / 共41页
点击查看更多>>
资源描述
第3章程序流控制主讲人:XXX面向对象程序设计程序流控制循环语句循环语句 2选择语句选择语句 1跳转语句跳转语句 32024/7/3033.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选择语句2024/7/304lif语句根据表达式的值选择要执行的语句。if语句的一般表示形式为:if(表达式)语句块;lif语句的执行方式如下:如果表达式的值为true,则执行语句块,否则语句块不会被执行。语句块可为一条或多条语句。3.1.1if语句2024/7/305l问题描述:编写一个程序(见图3.1),计算一门课程学生的考试通过率。随机抽取10名学生,分别输入每一学生考试的结果,通过了考试的学生,则向如图3.1所示的文本框中输入“1”,对没有通过考试的学生,则向图3.1所示的文本框中输入“2”。每次输入后都单击【确定】按钮。到第10次时,将显示如图3.2所示的消息框。任务3.1考试结果分析2024/7/306lif.else语句的一般表示形式为:if(表达式)语句块1;else 语句块2;lif.else语句的执行方式如下:如果表达式的值为true,则执行语句块1,如果表达式的值为false,则执行语句块2。l语句块1、语句块2可为一条或多条语句,如果为一条语句,则大括号可以省略。3.1.3ifelse语句2024/7/307问题描述:创建如图3.4所示的应用程序,要求用户在文本框中输入1到10之间的一个数字。然后单击【猜猜】按钮产生一个随机数字,用户将被告知所选择的数字是否正好等于这个随机数。任务3.2猜字游戏2024/7/308private void button1_Click(object sender,EventArgs e)int userGess=Int32.Parse(textBox1.Text);Random rnd=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 MessageBox.Show(str+欢迎你参加竟猜,下次再来);textBox1.Text=;任务3.2猜字游戏2024/7/309NextDouble:产生一个介于0.0和1.0之间的随机浮点数。Math.Round(r)方法:返回最接近r的整数,如果在两个数中间,取偶数。Math.Round(r,n)方法:返回具有n位有效小数位数、最接近r值的数。任务3.2猜字游戏2024/7/3010l?:运算符称为条件运算符,它又称为三元运算符,因为它是C#语言中唯一使用三个操作数的运算符。l条件运算符(?:)根据第一个表达式的值返回后两个表达式的值中的某一个值。条件运算符用于下列形式的条件表达式中:表达式1?表达式2:表达式3l条件表达式的执行方式如下:首先计算表达式1。如果表达式1的值为true,则计算表达式2,并作为条件表达式的结果。否则计算表达式3,并作为条件表达式的结果。3.1.3条件运算符2024/7/3011问题描述:设计如图3.5所示的窗体,运行程序,在三个文本框中分别输入小时数、分钟数及秒数,单击【设置并显示按钮】,在窗体上以时间格式(hh:mm:ss PM/AM)显示所设置的时间。任务3.3显示时间2024/7/3012实训内容:编写一个应用程序,确定餐厅服务生的消费数。小费金额是账单的 15%,最小值为1元。实训要求:要有输入格式异常处理。实训任务一2024/7/3013l可以使用if语句的else子句指定在表达式的值为false时执行的语句。在前面的猜数示例程序中,应用程序比较用户猜的数和随机产生的数,这里只有两种可能的情况:用户猜对了或猜错了。如果测试的情况多于两种,可以组合使用if和else。l其一般形式为:if(表达式1)语句块1;else if(表达式2)语句块2;.else 语句块n;3.1.4ifelseifelse语句2024/7/3014lif.else if.else语句的执行方式为:按照 if.else语句测试中条件表达式的出现顺序测试这些条件,如果if语句中的表达式为true,则执行if 后的相应语句。如果表达式为false,则按顺序计算else if后的表达式。当某个else if 后的表达式计算为true时,则执行相应的语句。如果没有任何表达式计算为true而且有一个else,则执行else后的语句。语句结束执行后,执行传递到组合 if.else的末尾。3.1.4ifelseifelse语句2024/7/3015问题描述:某公司雇员的工资包括基本工资和销售提成。销售提成根据表3.2给出的方式计算。编写一应用程序,输入雇员编号、基本工资和销售额,计算工资,并输出工资单。任务3.4工资发放2024/7/30163.1.5if语句的嵌套什么时候需要使用嵌套的 if 语句?if 语句可以分为哪几个组成部分?有多于一个条件判断时可以嵌套使用有多于一个条件判断时可以嵌套使用 ifif;条件部分和分支部分,分支部分可以有两个。条件部分和分支部分,分支部分可以有两个。2024/7/3017在if语句中又包含一个或多个if语句时,称为if语句的嵌套。l任务任务3.53.5:求数的绝对值:求数的绝对值 问题描述:有一函数:-x (x0)编写一程序,输入一个x值,输出y值。注意:在嵌套的if语句中,如果if与else的数目不相等,为实现程序设计者的意图,可以加大括号来确定与else部分相关联的if(如以上加底纹部分形式的if语句)。3.1.5if语句的嵌套2024/7/3018lswitch语句是分支选择语句,它通过switch 表达式的值与多个不同值进行比较选择相应的case语句来处理多个选择。switch中的表达式是一个整型或字符串型表达式。lswitch语句的一般表示形式为:switch(表达式)case 常数1:语句块1 break;.case 常数n:语句块n break;default:语句块n+1 break;3.1.6switch语句2024/7/3019实训内容:编写一个应用程序,实现一个简易的计算器。实训要求:要有输入格式异常处理。实训任务二2024/7/3020l复合赋值运算符对两个操作数执行指定的运算,然后将结果值赋予左操作数指定的变量。其一般形式为:x op=y;其中 op代表二元运算符(包括+、-、*、/、%)。复合赋值运算符产生的效果与x=x op y相同。如x+=y与x=x+y效果相同。3.1.7复合赋值运算符2024/7/3021l以下是C#提供的几种条件逻辑运算符和逻辑运算符:&(条件AND,条件与)、&(逻辑AND,逻辑与)|(条件OR,条件或)、|(逻辑OR,逻辑或)!(逻辑NOT,逻辑非)(逻辑XOR,逻辑异或)3.1.8条件逻辑运算符和逻辑运算符2024/7/30223.2.1 while语句3.2.2 do.while语句3.2.3 for语句3.2.4 嵌套循环3.2循环语句2024/7/3023lwhile语句有条件地执行嵌入语句零次或多次。lwhile语句的一般格式为:while(布尔表达式)嵌入语句 lwhile语句的执行方式如下:计算布尔表达式;如果布尔表达式的值为true,执行嵌入语句,嵌入语句结束执行后,控制将转到 while语句的开头,再次执行while语句;如果布尔表达式的值为false,结束while语句的执行。3.2.1while语句2024/7/3024ldo.while语句有条件地执行一个嵌入语句一次或多次,该语句的一般格式为:do 嵌入语句;while(布尔表达式)ldo.while语句的执行方式如下:(1)执行嵌入语句。(2)嵌入语句结束执行后,计算布尔表达式的值。如果布尔表达式的值为true,控制将转到do语句的开头,再次执行嵌入语句。否则,结束do语句的执行。3.2.2dowhile语句2024/7/3025lfor语句计算一个初始化表达式序列,然后,当某个条件为真时,重复执行某个嵌套语句并计算一个迭代表达式序列。lfor语句的一般格式:for(初始值设定项;循环条件;迭代表达式)嵌入语句;3.2.3for语句2024/7/3026l初始值设定项:初始化循环计数器的表达式或赋值语句的逗号分隔列表。l循环条件:必须是一个布尔表达式,此表达式用于条件测试以决定是否执行循环。l迭代表达式:递增或递减循环计数器的表达式语句,也可包含一个用逗号分隔的语句表达式列表。lfor语句的执行方式如下。(1)执行初始值设定项(按变量初始值设定项或语句表达式的编写顺序执行它们)。此步骤只执行一次。(2)计算循环条件。如果计算循环条件的值为true,则执行嵌入语句。执行完嵌入语句后,则按顺序计算迭代表达式,然后从计算上一个步骤中的循环条件开始,执行另一次迭代。l如果计算循环条件的值为false,结束for语句的执行。3.2.3for语句2024/7/3027实训内容:编写一个应用程序,实现阶乘的计算。实训要求:实训实现阶乘计算,要对输入整数进行异常处理。实训任务三2024/7/3028问题描述;某人新开一个账户,请编写一应用程序,输入开始存入的金额(本金)、年利率以及存款周期(年)。假定所有的利息收入都重新存入账户,请计算并输出在存款周期里,每年年终的账面金额。其金额的计算公式为a=p(1+r)n。其中,p是最开始存入的金额(本金),r是年利率,n是年数,a是在第n年年终的复利存款。任务3.7计算复利存款(一)2024/7/3029 打开前面创建的项目TestWhile,运行程序,输入数据,单击【计算】按钮,结果如图3.11所示。运行结果表明嵌入语句一次也没有执行,因为n为-8,year为1,表达式year=n的值为false。为了使嵌入语句至少被执行一次,可使用do.while语句。请用do.while语句完成计算复利存款的任务。任务3.8计算复利存款(二)2024/7/3030任务3.9:打印字母表及对应的ASCII码(一)编写一应用程序,打印字母表及对应的ASCII码。任务3.10:打印字母表及对应的ASCII码(二)问题描述:修改以上“任务3.9:打印字母表及对应的ASCII码(一)”程序,让应用程序在每一行上输出5个字符。解决方案:(1)修改以上程序,我们也可在for循环中增加另一个for循环,让应用程序在每一行上输出5个字符。(2)运行程序,结果如图3.15所示。任务3.9、3.102024/7/30313.3.1 goto语句3.3.2 break语句3.3.3 continue语句3.3.4 运算符的优先级3.3跳转语句与要点2024/7/3032在程序中goto语句将程序控制直接传递给标记语句。它的形式为下列之一:goto 标识符;goto语句的具体应用。1.使用goto跳出嵌套循环 2.使用goto跳转到一个switch-case标签 3.3.1goto语句2024/7/30331.使用goto跳出嵌套循环任务3.11:找数问题描述;在一数组中查找是否存在某一数,如果在数组中找到该数,则显示找到该数,否则显示该数没有被找到。3.3.1goto语句2024/7/30342.使用goto跳转到一个switch-case标签 任务3.12:自动售货机l 问题描述;有一自动售货机,在出售的商品中有罐装大、中、小号冰红茶及瓶装纯净水,小号冰红茶的单价为2元,中号冰红茶的单价为小号冰红茶单价的2倍,大号冰红茶的单价为小号冰红茶单价的3倍,瓶装纯净水的单价与小号冰红茶的单价相同。试用switch.case语句写出一程序,当用户选择其中一种商品时,计算用户应付金额。l当用户输入0时表示选择瓶装纯净水,1表示小号冰红茶,2表示中号冰红茶,3表示大号冰红茶。3.3.1goto语句2024/7/3035lbreak语句可用来退出最近的封闭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.2break语句2024/7/3036l任务3.13:打印字母表及对应的ASCII码(三)写一应用程序,打印AZ,每行5个字符,到Z时结束,如图所示。任务3.132024/7/3037continue语句开始最近的封闭while、do、for语句的一次新迭代。continue语句的一般格式为:continue;lcontinue语句将控制转到最近的封闭while、do、for或foreach语句的嵌入语句的结束点,从而执行while、do、for或foreach语句的另一次迭代。如果continue语句不是由while、do、for或foreach语句封闭的,则发生编译时错误。l当多个while、do、for或foreach语句互相嵌套时,continue语句只应用于最里层的语句。若要在多个嵌套层之间转移控制,必须使用goto语句。3.3.3continue语句2024/7/3038l当单个表达式或语句包含多个运算符时,编译器必须决定对运算符进行运算的次序。控制编译器如何做此决定的规则被称为运算符的优先级。理解运算符的优先级是编写可靠的表达式的基本条件,否则表达式的结果可能出乎意料。1.C#如何决定运算符的优先级下面,我们来看看C#如何为运算符分配优先级。表3.5按照从最高到最低的优先级顺序列出了我们已讨论过的运算符的优先级。2.左结合性和右结合性3.3.4运算符的优先级2024/7/3039表3.5 运算符的优先级2024/7/3040标题栏
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!