Java面向对象程序设计 课件 项目4 选择结构程序设计_第1页
Java面向对象程序设计 课件 项目4 选择结构程序设计_第2页
Java面向对象程序设计 课件 项目4 选择结构程序设计_第3页
Java面向对象程序设计 课件 项目4 选择结构程序设计_第4页
Java面向对象程序设计 课件 项目4 选择结构程序设计_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

项目4选择结构程序设计学习目标知识技能目标:能正确使用关系表达式表示条件能正确使用逻辑表达式表示条件能正确使用if语句编写程序能正确使用switch语句、switch表达式编写程序职业素养目标:具备规范编码的职业素养,提高代码的可读性和可维护性具备持续学习和探索的精神,高效、简洁地实现条件控制课证融通学习内容与“大数据应用开发(Java)”职业技能等级标准(初级)对应关系工作任务职业技能要求1.2面向过程代码编写1.2.2能熟练运用分支、循环等流程控制完成较复杂程序设计任务4.1判断闰年还是平年1闰年(英文名称:leapyear):阳历或阴历中有闰日的年,或阴阳历中有闰月的年。闰年是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的。补上时间差的年份为闰年,闰年的二月有二十九天。判定公历闰年应遵循的一般规律为:四年一闰,百年不闰,四百年再闰。本任务要求,编程实现键盘输入公历年份,判断并输出这一年是闰年还是平年。任务详解任务描述任务4.1判断闰年还是平年1微课1-1Java前世今生技能点1:用关系表达式或者逻辑表达式表示条件计算机程序表示判断和决策经常会用到关系表达式和逻辑表达式。关系表达式用于比较两个数值类型的数据的大小关系,如果关系成立,关系表达式的值为true,反之返回false。关系表达式和逻辑表达式常用于实现选择结构的if语句、while、do...while和for循环语句中。技术准备任务4.1判断闰年还是平年1微课1-1Java前世今生判断偶数的条件是偶数对2取余等于0,对应的关系表达式为:num%2==0案例:判断一个数num是否为偶数水仙花数是指一个3位数,它的每个位上的数字的3次幂之和等于它本身。判断num是否是水仙花数,要先取出其百位、十位和个位,再写出对应的关系表达式。取百位:n2=num/100

取十位:n1=num%100/10

取个位:n0=num%10判断num为水仙花数的表达式:n2*n2*n2+n1*n1*n1+n0*n0*n0==num案例:判断一个三位数num是否是水仙花数任务4.1判断闰年还是平年1微课1-1Java前世今生判断字符是否是大写字母的条件是,如果字符ch在‘A’-‘Z’之间,那就是大写字母。对应的条件表达式为:ch>=’A’&&ch<=’Z’案例:判断一个字符ch是否是大写字母判定公历闰年应遵循的一般规律为:四年一闰,百年不闰,四百年再闰。也就是说year为闰年满足以下条件之一:(1)能被4整除,但是不能被100整除(2)能被400整除对应的条件表达式为:(year%4==0&&year%100!=0)||year%400==0案例:判断一个年份year是否是闰年任务4.1判断闰年还是平年1技能点2:用if语句实现条件判断Java中实现选择结构可以用if语句和switch语句来实现。if语句有三种形式:简单if语句、if…else语句和if…elseif语句。1.简单if语句语法:if(条件表达式)

语句块执行流程:先判断if后条件表达式的值,如果值为true,执行语句块,如果条件表达式的值为false,则不执行语句块。技术准备if语句执行流程任务4.1判断闰年还是平年1微课1-1Java前世今生(1)条件表达式值的类型为boolean型,条件表达式可以是关系表达式或逻辑表达式if(3+5){System.out.println("3+5");}

不合法,3+5的值不是boolean类型(2)如果条件成立执行的语句不止一条,需要加花括号。(3)if(条件表达式)后不应该加分号,如果加分号,代表条件成立执行的是空语句;使用说明:inta=90;if(a>100);

a++;System.out.println(a);第2行代码后有分号,分号代表空语句,如果a>100条件成立,执行空语句。a++;语句无论条件是否成立都要执行,因此,执行完上述代码后,a的值是91。任务4.1判断闰年还是平年1微课1-1Java前世今生案例:编程实现,键盘输入一个数,如果是偶数则输出这个数教师演示第一步:在IDEA中新建一个Java项目第二步:编码实现第三步:运行并查看结果任务4.1判断闰年还是平年1技能点2:用if语句实现条件判断2.if…else语句语法:if(条件表达式){

语句块1}else{

语句块2}执行流程:先计算条件表达式的值,如果值为true执行语句块1,否则执行语句块2。技术准备if...else....语句执行流程任务4.1判断闰年还是平年1使用说明:(1)if…else语句,if的条件表达式后不能加分号。(2)每一个else语句都要有一个if语句和它匹配。if(a>b);

max=a;

else//报错,提示没有if和这个else匹配

max=b;第03行会报错,提示没有if与这个else匹配。任务4.1判断闰年还是平年1行业编码规范《阿里巴巴Java开发手册》中对控制语句的要求:【强制】在if/else/for/while/do语句中必须使用大括号。即使只有一行代码,避免采用单行的编码方式:if(condition)statements;任务4.1判断闰年还是平年1微课1-1Java前世今生案例:编程实现,判断一个三位数num是否是水仙花数教师演示第一步:在IDEA中新建一个Java项目第二步:编码实现第三步:运行并查看结果技能点3:用条件表达式表示简单选择任务4.1判断闰年还是平年1技术准备Java中唯一的一个三目运算符是条件运算符,用条件运算符可以进行简单的条件判断。该运算符的优先级较低,仅高于赋值运算,结合性和赋值运算符一样,从右到左。语法:(表达式1)?表达式2:表达式3执行流程:如果表达式1为true,则整个条件表达式的值为表达式2的值;否则,表达式的值为表达式3的值。任务实施任务4.1判断闰年还是平年1第一步:识别程序中的输入、处理和输出程序的输入:

程序要用到的变量:需要保存的数据数据类型变量名初值year

判断闰年的条件:程序的输出:任务实施任务4.1判断闰年还是平年1第二步:算法设计第三步:编码实现1.启动IDEA,单击“File”->“New”->“Project...”菜单项,弹出“NewProject”对话框中,输入项目名称,选择JDK版本。2.根据算法设计,编码实现第四步:运行和调试程序第五步:验证程序运行结果AEBCD小组协作,完成任务评价测试任务4.1判断闰年还是平年1评价指标评价标准分值得分创建项目正确创建Java项目10

输入正确输入年份,用户界面友好10

处理正确判断是否是闰年30

输出结果输出结果正确,提示信息友好30

编码规范变量命名规范、有合理的注释20

拓展提升任务4.1判断闰年还是平年1字符串就是Unicode字符序列,用双引号括起来的0个或者多个字符。Java中没有字符串类型,JDK中提供了String类用于表示字符串。每一个用双引号括起来的字符串都代表一个String类的对象。Stringname="";Stringname="zhangsan";1.String类中常用的方法2.典型应用(1)求字符串的子串

(2)字符串的连接

(3)判断两个字符串相等

(4)判断字符串是否是空串(5)字符串拆分技能提升1——比较两个字符串是否相等任务4.1判断闰年还是平年1微课1-1Java前世今生案例:编写程序,实现登录验证教师演示第一步:在IDEA中新建一个Java项目第二步:分析输入的核心语句第三步:编码实现第四步:运行并查看结果任务描述任务4.2基于BMI的健康检测系统2BMI指数是身体质量指数(简称体质指数),是国际上常用的衡量人体胖瘦程度以及是否健康的一个标准,由19世纪中期的比利时通才凯特勒最先提出。计算公式为:BMI=体重÷身高2(体重单位:kg,身高单位:m)本任务要求:编程实现,输入身高(单位:米)和体重(单位:千克),计算BMI值,对照《BMI中国标准》并根据BMI范围给出健康状况提示。具体任务任务4.2基于BMI的健康检测系统2技能点:用if语句实现多分支技术准备语法:if(条件表达式1){

语句块1}elseif(条件表达式2){

语句块2}...elseif(条件表达式n){

语句块n}else{

语句块n+1}执行流程:先判断条件表达式1的值,如果为true,执行语句块1,否则判断条件表达式2的值,如果为true,执行语句块2,以此类推,否则判断条件表达式n的值,如果为true,执行语句块n,否则执行语句块n+1。任务4.2基于BMI的健康检测系统2案例:编程实现,键盘输入一个整数,判断是正数、负数还是零教师演示第一步:在IDEA中新建一个Java项目第二步:算法分析第三步:编码实现第四步:运行并查看结果任务实施任务4.2基于BMI的健康检测系统2第一步:识别程序中的输入、处理和输出程序的输入:身高和体重程序要用到的变量:计算BMI:bmi=weight/(height*height);程序的输出:

根据bmi的取值输出对应结果需要保存的数据数据类型变量名初值身高doubleheight

体重doubleweight

保存BMIdoublebmi

任务实施任务4.2基于BMI的健康检测系统2第二步:算法设计第三步:编码实现1.新建Java项目2.根据算法设计,编码实现写出实现身高和体重的语句:写出计算bmi值的语句:写出输出结果的语句:第四步:运行和调试程序第五步:验证程序运行结果AEBCD小组协作,完成任务评价测试任务4.2基于BMI的健康检测系统2评价指标评价标准分值得分创建项目正确创建Java项目10

输入正确输入身高和体重,用户界面友好10

处理正确计算bmi的值30

输出结果输出结果正确,提示信息友好30

编码规范变量命名规范、有合理的注释20

拓展提升——生成随机数任务4.2基于BMI的健康检测系统2JDK中java.util包下的Random类可以生成伪随机数。具体用法:1.创建一个Random类的对象Randomrand=newRandom();2.生成随机数(1)生成0~10之间的整数,包含0但不包含10intn=rand.nextInt(10);(2)生成50~100之间的整数,包含50,不包含100intn=rand.nextInt(100-50)+50;(3)生成0.0~1.0之间的随机浮点数,包含0.0,不包含1.0doubled=rand.nextDouble();任务4.2基于BMI的健康检测系统2案例:设计并实现一个程序,用于模拟一台简单的老虎机教师演示第一步:识别程序的输入第二步:为三个数赋[0,9]的随机值第三步:编码实现第四步:运行程序,验证结果任务描述任务4.3用switch语句实现剪刀石头布游戏3石头剪刀布是一种广泛流传于中国民间的古老游戏,也深受孩子们的喜爱。这个游戏的主要目的是为了解决争议,因为石头、剪刀和布三者之间相互制约,所以不论平局多少次,总会有胜负的时候。游戏规则是,石头能够克制剪刀,剪刀能够克制布,而布则能克制石头。本任务要求:编程实现,玩家选择石头、剪刀或者布和计算机随机选择,然后根据石头剪刀布的规则判断胜负。如果玩家和计算机的选择相同,那么就是平局。提示:1表示石头,2表示剪刀,3表示布。具体任务任务4.3用switch语句实现剪刀石头布游戏3技能点1:switch语句实现多分支结构if...elseif...else语句可以实现多分支程序,但当分支比较多时,if...elseif...会显得比较臃肿。用switch语句可以让程序变得更简洁,特别是JDK14之后的版本实现起来更简单。技术准备JDK14之后的新特性语法:switch(表达式){case常量表达式1->语句块1;case常量表达式2->语句块2;......default->语句块n+1;}执行流程:先计算表达式的值,再判断其值和哪个case后的常量表达式的值相等,如果相等,执行该case后的语句块,switch语句结束;如果不相等,执行default后的语句块。任务4.3用switch语句实现剪刀石头布游戏3技能点1:switch语句实现多分支结构技术准备使用说明:(1)case后执行的语句块不止一条语句,需要用花括号括起来。(2)switch语句的新特性中,保证只有一条路径被执行,case后的语句块后不需要break语句。(3)switch后的表达式可以是char、byte、short、int、String类型。(4)case后的常量表达式的值不允许重复。(5)case后的表达式的类型可以是char、byte、short、int类型的常量表达式,字符串常量,枚举常量。(6)case后可以跟多个值,中间用逗号分隔。任务4.3用switch语句实现剪刀石头布游戏3案例:键盘输入1,2,3输出其分别其代表的含义,1代表石头,2代表剪刀,3代表布教师演示第一步:新建项目第二步:算法设计第三步:编码实现第四步:运行测试任务4.3用switch语句实现剪刀石头布游戏3案例:键盘输入分数,输出对应的等级教师演示第一步:新建项目第二步:算法设计第三步:编码实现第四步:运行测试任务4.3用switch语句实现剪刀石头布游戏3技能点1:switch语句实现多分支结构JDK14之前的switch称之为“经典”switch,从JDK1.0开始采用这种形式,和C语言的switch用法保持一致技术准备语法:switch(表达式){case常量表达式1:语句块1;case常量表达式2:语句块2;......default:语句块n+1;}执行流程:首先计算表达式的值。并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,遇到break语句或者switch语句结束为止。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。技能点2:用无直通行为的switch表达式实现多分支任务4.3用switch语句实现剪刀石头布游戏3JDK14中还增加了switch表达式,每个分支必须生成一个值,如果分支后是语句,需要用yield生成一个值。switch表达式中有两种形式,一种是有直通行为的,另一种是无直通行为。有直通行为的switch表达式,case后用冒号结束,无直通行为的switch表达式,case后用->结束。技术准备技能点2:用无直通行为的switch表达式实现多分支任务4.3用switch语句实现剪刀石头布游戏31.无直通行为的switch表达式语法:数据类型变量名=switch(表达式){case常量表达式1->表达式1;case常量表达式2->表达式2;......default->表达式n+1;}技术准备执行流程:先计算switch后的表达式的值,找到和case后匹配的值相同的分支,将其后的表达式的值赋给变量,如果没有一个case后的值与之匹配,将default后的表达式的值赋给变量。技能点2:用无直通行为的switch表达式实现多分支任务4.3用switch语句实现剪刀石头布游戏3技术准备示例代码:chargrade=switch(score/10){case10,9->'A';case8,7->'B';case6->'C';default->'D';};System.out.println(grade);代码解析:当score的值为[90,100],将'A'赋给grade变量;当score的值为[70,90),将'B'赋给grade变量;当score的值为[60,70),将'C'赋给grade变量;当score的值为[0,60),将'D'赋给grade变量。技能点2:用无直通行为的switch表达式实现多分支任务4.3用switch语句实现剪刀石头布游戏3技术准备语法:数据类型

变量名=switch(表达式){case常量表达式1->表达式1或者{语句;yield表达式1};case常量表达式2->表达式2或者{语句;yield表达式2};......default->表达式n+1或者{语句;yield表达式n+1};}2.switch和yield的使用如果switch表达式中case分支跟的是语句,则需要用yield终止switch表达式并返回其后的值。技能点2:用无直通行为的switch表达式实现多分支任务4.3用switch语句实现剪刀石头布游戏3技术准备执行流程:先计算switch后的表达式的值,找到和case后匹配的值相同的分支,将其后的表达式的值赋给变量,如果case的->后不是表达式,执行语句,将yield后的值赋给变量。示例代码:publicstaticvoidmain(String[]args){Stringselect="石头";intchoice;choice=switch(select){case"石头"->1;case"剪刀"->2;case"布"->3;default->{System.out.println("输入无效");yield-1;}};System.out.println(choice);}技能点2:用无直通行为的switch表达式实现多分支任务4.3用switch语句实现剪刀石头布游戏32.switch和yield的使用如果switch表达式中case分支跟的是语句,则需要用yield终止switch表达式并返回其后的值。语法:数据类型变量名=switch(表达式){case常量表达式1->表达式1或者{语句;yield

表达式1};case常量表达式2->表达式2或者{语句;yield

表达式2};

......default->表达式n+1或者{语句;yield

表达式n+1};}执行流程:先计算switch后的表达式的值,找到和case后匹配的值相同的分支,将其后的表达式的值赋给变量,如果case的->后不是表达式,执行语句,将yield后的值赋给变量。技术准备技能点3:有直通行为的switch表达式任务4.3用switch语句实现剪刀石头布游戏3有直通行为的switch表达式,case后用冒号结束,这样可以实现多个case分支返回相同的值。技术准备语法:数据类型变量名=switch(表达式){case常量表达式1:语句1;case常量表达式2:yield值1;......default:yield值n;}执行流程:先计算switch后的表达式的值,找到和case后匹配的值相同的分支开始执行,遇到yield语句后,终止switch表

温馨提示

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

评论

0/150

提交评论