Java-第3章-分支结构.ppt

上传人:牧羊曲112 文档编号:6509176 上传时间:2023-11-07 格式:PPT 页数:35 大小:309.99KB
返回 下载 相关 举报
Java-第3章-分支结构.ppt_第1页
第1页 / 共35页
Java-第3章-分支结构.ppt_第2页
第2页 / 共35页
Java-第3章-分支结构.ppt_第3页
第3页 / 共35页
Java-第3章-分支结构.ppt_第4页
第4页 / 共35页
Java-第3章-分支结构.ppt_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《Java-第3章-分支结构.ppt》由会员分享,可在线阅读,更多相关《Java-第3章-分支结构.ppt(35页珍藏版)》请在三一办公上搜索。

1、第3章 分支结构,本章学习重点,复合语句。if语句。if-else语句。switch语句。,3.1 复合语句,在Java语言中,有简单语句和复合语句之分。一条简单语句总是以分号结束,它代表一个要执行的操作,可以是赋值、判断或者跳转等语句,甚至还可以是只有分号的空语句(;),空语句表示不需要执行任何的操作。而复合语句则是指用大括号括起来的语句块(block),它一般由多条语句构成,但也允许只有一条简单语句。,复合语句,格式如下:简单语句1;简单语句2;简单语句n;比如以下例子均为复合语句:a=1;b=2;或 S=0;,复合语句在后面的流程控制结构中经常要用到,比如需要多个语句作为一个“整体语句”

2、出现时就必须用大括号将其括起来作为一条复合语句。Java程序的语句流程可以分为以下三种基本结构:顺序结构、分支(选择)结构以及循环结构。对于分支结构和循环结构,当条件语句或者循环体语句多于一条时,必须采用复合语句的形式,即用大括号将其括起来,否则系统将默认条件语句或循环体语句仅有一条,即最近的那一条。反过来说,当条件语句或者循环体语句只有一条时,则可用可不用大括号,这点请初学者学习后面内容时注意留心。,3.2 顺序结构,由赋值语句以及输入输出语句构成的程序,只能按其书写顺序自上而下,从左到右依次执行,将此类程序结构称为顺序结构。它是最简单的程序结构,也是计算机执行的最一般流程。,【例3-1】交

3、换两变量的值。public class Testpublic static void main(String args)int a=5,b=8,c;System.out.println(a,b的初始值);System.out.println(a=+a);System.out.println(b=+b);c=a;a=b;b=c;System.out.println(a,b的新值);System.out.println(a=+a);System.out.println(b=+b);,【例3-2】已知三角形的三条边长,求它的面积。提示:面积=,其中,,public class Test public

4、 static void main(String args)double a=3,b=4,c=5,s;/三角形的三条边 double area;/三角形的面积 s=(a+b+c)/2;area=Math.sqrt(s*(s-a)*(s-b)*(s-c);System.out.println(该三角形的面积为:+area);,3.3 分支结构,分支结构也叫选择结构,分支结构表示程序中存在分支语句,这些语句根据条件的不同,将被有选择地加以执行(取决于条件表达式的取值情况)。分支结构:单分支、双分支和多分支结构。Java语言的单分支是if语句,双分支是if-else语句,多分支是switch语句,实

5、现时,也可以用switch语句构成双分支结构,或者用if-else语句嵌套构成多分支结构。,单分支条件语句,单分支条件语句的一般格式是:if(布尔表达式)语句;,int i=0,j=0;if(i!=j)i+;j+;,int i=0,j=0;if(i!=j)i+;j+;,int i=0,j=0;if(i!=j)i+;j+;,【例3-4】乘坐飞机时,每位顾客可以免费托运20kg以内的行李,超过部分假定按每公斤收费1.2元的话,试编写相应计算收费的程序。,(1)数据变量:w-行李重量(以公斤为单位)fee-收费(单位元)根据数据的特点,变量的数据类型必须为浮点型,不妨定为float类型。,(2)算法

6、:0 w 20(3)由System.out.println();语句提示用户输入数据(行李重量),然后通过利用前述的交互式输入方法给w变量赋值。,(4)由单分支结构,构成程序段即对用户敲入的数据进行判断,并按收费标准计算收费额。程序段局部如下:.fee=0;if(w20)fee=1.2*(w-20);.,import java.io.*;public class Test public static void main(String args)throws IOException float w,fee;/以下代码为通过控制台交互输入行李重量 InputStreamReader reader=

7、new InputStreamReader(System.in);BufferedReader input=new BufferedReader(reader);System.out.println(请输入旅客的行李重量:);String temp=input.readLine();w=Float.parseFloat(temp);/字符串转换为单精度浮点型 fee=0;if(w 20)fee=(float)1.2*(w-20);System.out.println(该旅客需交纳的托运费用:+fee+元);,【例3-5】根据年龄,判断某人是否为成年。public class Test publ

8、ic static void main(String args)byte age=20;if(age=18)System.out.println(成年);if(age18)System.out.println(未成年);,【例3-6】已知鸡和兔的总数量,以及鸡兔脚的总数,求鸡和兔各自的数量。public class Test public static void main(String args)double chick,rabbit;short heads=10,feet=32;chick=(heads*4-feet)/2.0;rabbit=heads-chick;if(chick=(sho

9、rt)chick,双分支条件语句,Java语言的双分支结构由if-else语句实现,一般格式如下:,if(布尔表达式)语句1;else 语句2;,int i=0,j=0;if(i=j)i+;j+;else i-;j-;,int i=0,j=0;if(i=j)i+;j+;else i-;j-;,int i=0,j=0;if(i=j)i+;j+;else i-;j-;,【例3-7】鸡兔问题的改进。public class Test public static void main(String args)double chick,rabbit;short heads=10,feet=33;chick

10、=(heads*4-feet)/2.0;rabbit=heads-chick;if(chick=(short)chick,【例3-8】根据年龄,判断某人是否为成年,用双分支实现。public class Test public static void main(String args)byte age=20;if(age=18)System.out.println(成年);else System.out.println(未成年);,【例3-9】判断2020的奇偶性,并进行输出?public class Test public static void main(String args)short

11、 n=2020;if(n%2=0)System.out.println(2020是偶数。);else System.out.println(2020是奇数。);,【例3-10】判断并输出2020年是否为闰年?闰年的判断是能被4整除但又不能被100整除,或能被400整除的公元年,因此闰年的判断可以用一个布尔表达式来实现。,public class Test public static void main(String args)boolean leapYear;short year=2020;leapYear=(year%4=0,分支结构嵌套,Java语言允许对if-else条件语句进行嵌套使用

12、。前述分支结构的语句部分,可以是任何语句(包括分支语句本身),我们把分支结构的语句部分仍为分支结构的情况,称为分支结构嵌套。构造分支结构嵌套的主要目的是解决条件判断较多,较复杂的一些问题。常见的嵌套结构如下所示:,if(布尔表达式1)if(布尔表达式2)语句1;,if(布尔表达式1)语句1;else if(布尔表达式2)语句2;else 语句3;,if(布尔表达式1)if(布尔表达式2)语句1;else 语句2;else 语句3;,请分析以下分支嵌套程序段执行后的输出结果。,int i=1,j=2;if(i!=j)-if(ij)-i-;-else j-;-System.out.println(

13、“i=”+i+”,j=”+j);-else System.out.println(“i=”+i+”,j=”+j);-.-,【例3-11】根据某位同学的分数成绩,判断其等级:优秀(90分以上);良好(80分以上90分以下);中等(70分以上80分以下);及格(60分以上70分以下);不及格(60分以下)。,public static void main(String args)throws IOException float score;InputStreamReader reader=new InputStreamReader(System.in);BufferedReader input=n

14、ew BufferedReader(reader);System.out.println(请输入分数:);String temp=input.readLine();score=Float.parseFloat(temp);if(score 90)if(score 80)if(score 70)if(score 60)System.out.println(该同学的分数等级为:不及格);else System.out.println(该同学的分数等级为:及格);else System.out.println(该同学的分数等级为:中等);else System.out.println(该同学的分数等

15、级为:良好);else System.out.println(该同学的分数等级为:优秀);,【例3-13】假定个人收入所得税的计算方式如下:当收入额小于等于1800元时,免征个人所得税;超出1800元但在5000元以内的部分,以20%的税率征税;超出5000元但在10000元以内的部分,按35%的税率征税;超出10000元的部分一律按50%征税。试编写相应的征税程序。,double income,tax;tax=0;if(income=1800)System.out.println(免征个税.);else if(income=5000)tax=(income-1800)*0.2;else if

16、(income=10000)tax=(5000-1800)*0.2+(income-5000)*0.35;else tax=(5000-1800)*0.2+(10000-5000)*0.35+(income-10000)*0.5;System.out.println(您的个人收入所得税额为:+tax);,if(income=1800)System.out.println(免征个税.);else if(income=5000)tax=(income-1800)*0.2;else if(income=10000);tax=(5000-1800)*0.2+(income-5000)*0.35;els

17、e tax=(5000-1800)*0.2+(10000-5000)*0.35+(income-10000)*0.5;,查错,switch语句,Java语言多分支结构的实现语句是switch,switch语句的一般语法格式如下:,switch(表达式)case 判断值1:语句1;case 判断值2:语句2;.case 判断值n:语句n;default:语句n+1;,switch语句,表达式的值必须为有序数值(如整型数或字符等),不能为浮点数。case语句中的判断值则须为常量值,也可称之为标号,它代表一个case分支的入口,每一个case分支后面的语句可以是单条的,也可以是多条的,并且当有多条语

18、句时,不需要加大括号将其括起来。default子句是可选的,并且其位置必须在switch结构的末尾,当表达式的值与任何case常量值均不匹配时,就执行default子句,然后就退出switch结构了。若表达式的值与任何case常量值均不匹配,且无default子句,则程序不执行任何操作,直接跳出switch结构,继续后续的程序。,【例3-14】在控制台敲入0至6的数字,输出对应的星期数(0对应星期天,1对应星期一,依此类推)。public static void main(String args)throws IOExceptionint day;System.out.print(请输入星期数

19、(0-6):);day=(int)(System.in.read()-0;switch(day)case 0:System.out.println(day+表示是星期日);case 1:System.out.println(day+表示是星期一);case 2:System.out.println(day+表示是星期二);case 3:System.out.println(day+表示是星期三);case 4:System.out.println(day+表示是星期四);case 5:System.out.println(day+表示是星期五);case 6:System.out.printl

20、n(day+表示是星期六);default:System.out.println(day+是无效数!);,switch(day)case 0:System.out.println(day+表示是星期日);break;case 1:System.out.println(day+表示是星期一);break;case 2:System.out.println(day+表示是星期二);break;case 3:System.out.println(day+表示是星期三);break;case 4:System.out.println(day+表示是星期四);break;case 5:System.out.println(day+表示是星期五);break;case 6:System.out.println(day+表示是星期六);break;default:System.out.println(day+是无效数!);,使用switch结构时应注意的问题,(1)允许多个不同的case标号执行相同的一段程序,比如以下情形:.case 常量i:case 常量j:语句;break;.(2)每一个case子句的常量值必须各不相同。,作业,127,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号