您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > Java-第3章-分支结构
第3章分支结构本章学习重点复合语句。if语句。if-else语句。switch语句。3.1复合语句在Java语言中,有简单语句和复合语句之分。一条简单语句总是以分号结束,它代表一个要执行的操作,可以是赋值、判断或者跳转等语句,甚至还可以是只有分号的空语句(;),空语句表示不需要执行任何的操作。而复合语句则是指用大括号括起来的语句块(block),它一般由多条语句构成,但也允许只有一条简单语句。复合语句格式如下:{简单语句1;简单语句2;…简单语句n;}比如以下例子均为复合语句:{a=1;b=2;}或{S=0;}复合语句在后面的流程控制结构中经常要用到,比如需要多个语句作为一个“整体语句”出现时就必须用大括号将其括起来作为一条复合语句。Java程序的语句流程可以分为以下三种基本结构:顺序结构、分支(选择)结构以及循环结构。对于分支结构和循环结构,当条件语句或者循环体语句多于一条时,必须采用复合语句的形式,即用大括号将其括起来,否则系统将默认条件语句或循环体语句仅有一条,即最近的那一条。反过来说,当条件语句或者循环体语句只有一条时,则可用可不用大括号{},这点请初学者学习后面内容时注意留心。3.2顺序结构由赋值语句以及输入输出语句构成的程序,只能按其书写顺序自上而下,从左到右依次执行,将此类程序结构称为顺序结构。它是最简单的程序结构,也是计算机执行的最一般流程。【例3-1】交换两变量的值。publicclassTest{publicstaticvoidmain(String[]args){inta=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);}}()()()ssasbsc2abcs【例3-2】已知三角形的三条边长,求它的面积。提示:面积=其中,publicclassTest{publicstaticvoidmain(String[]args){doublea=3,b=4,c=5,s;//三角形的三条边doublearea;//三角形的面积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语句,实现时,也可以用switch语句构成双分支结构,或者用if-else语句嵌套构成多分支结构。单分支条件语句单分支条件语句的一般格式是:if(布尔表达式){语句;}布尔表达式语句truefalseinti=0,j=0;if(i!=j){i++;j++;}inti=0,j=0;if(i!=j)i++;j++;inti=0,j=0;if(i!=j)i++;j++;【例3-4】乘坐飞机时,每位顾客可以免费托运20kg以内的行李,超过部分假定按每公斤收费1.2元的话,试编写相应计算收费的程序。(1)数据变量:w-----行李重量(以公斤为单位)fee-----收费(单位元)根据数据的特点,变量的数据类型必须为浮点型,不妨定为float类型。(2)算法:0w=20fee=1.2*(w-20)w20(3)由System.out.println();语句提示用户输入数据(行李重量),然后通过利用前述的交互式输入方法给w变量赋值。(4)由单分支结构,构成程序段即对用户敲入的数据进行判断,并按收费标准计算收费额。程序段局部如下:...fee=0;if(w20)fee=1.2*(w-20);...importjava.io.*;publicclassTest{publicstaticvoidmain(String[]args)throwsIOException{floatw,fee;//以下代码为通过控制台交互输入行李重量InputStreamReaderreader=newInputStreamReader(System.in);BufferedReaderinput=newBufferedReader(reader);System.out.println(请输入旅客的行李重量:);Stringtemp=input.readLine();w=Float.parseFloat(temp);//字符串转换为单精度浮点型fee=0;if(w20)fee=(float)1.2*(w-20);System.out.println(该旅客需交纳的托运费用:+fee+元);}}【例3-5】根据年龄,判断某人是否为成年。publicclassTest{publicstaticvoidmain(String[]args){byteage=20;if(age=18)System.out.println(成年);if(age18)System.out.println(未成年);}}【例3-6】已知鸡和兔的总数量,以及鸡兔脚的总数,求鸡和兔各自的数量。publicclassTest{publicstaticvoidmain(String[]args){doublechick,rabbit;shortheads=10,feet=32;chick=(heads*4-feet)/2.0;rabbit=heads-chick;if(chick==(short)chick&&chick=0&&rabbit=0){System.out.println(鸡有+chick+只);System.out.println(兔有+rabbit+只);}}}双分支条件语句Java语言的双分支结构由if-else语句实现,一般格式如下:if(布尔表达式){语句1;}else{语句2;}布尔表达式语句1语句2truefalseinti=0,j=0;if(i==j){i++;j++;}else{i--;j--;}inti=0,j=0;if(i==j){i++;j++;}elsei--;j--;inti=0,j=0;if(i==j)i++;j++;else{i--;j--;}【例3-7】鸡兔问题的改进。publicclassTest{publicstaticvoidmain(String[]args){doublechick,rabbit;shortheads=10,feet=33;chick=(heads*4-feet)/2.0;rabbit=heads-chick;if(chick==(short)chick&&chick=0&&rabbit=0){System.out.println(鸡有+chick+只);System.out.println(兔有+rabbit+只);}else{System.out.println(数据输入可能有误!);}}}【例3-8】根据年龄,判断某人是否为成年,用双分支实现。publicclassTest{publicstaticvoidmain(String[]args){byteage=20;if(age=18)System.out.println(成年);elseSystem.out.println(未成年);}}【例3-9】判断2020的奇偶性,并进行输出?publicclassTest{publicstaticvoidmain(String[]args){shortn=2020;if(n%2==0)System.out.println(2020是偶数。);elseSystem.out.println(2020是奇数。);}}【例3-10】判断并输出2020年是否为闰年?闰年的判断是能被4整除但又不能被100整除,或能被400整除的公元年,因此闰年的判断可以用一个布尔表达式来实现。publicclassTest{publicstaticvoidmain(String[]args){booleanleapYear;shortyear=2020;leapYear=(year%4==0&&year%100!=0)||(year%400==0);if(leapYear)System.out.println(2020是闰年。);elseSystem.out.println(2020不是闰年。);}}分支结构嵌套Java语言允许对if-else条件语句进行嵌套使用。前述分支结构的语句部分,可以是任何语句(包括分支语句本身),我们把分支结构的语句部分仍为分支结构的情况,称为分支结构嵌套。构造分支结构嵌套的主要目的是解决条件判断较多,较复杂的一些问题。常见的嵌套结构如下所示:if(布尔表达式1)if(布尔表达式2)语句1;if(布尔表达式1)语句1;elseif(布尔表达式2)语句2;else语句3;if(布尔表达式1)if(布尔表达式2)语句1;else语句2;else语句3;请分析以下分支嵌套程序段执行后的输出结果。inti=1,j=2;if(i!=j)--------①{if(ij)--------②i--;--------③elsej--;--------④System.out.println(“i=”+i+”,j=”+j);--------⑤}elseSystem.out.println(“i=”+i+”,j=”+j);--------⑥...--------⑦【例3-11】根据某位同学的分数成绩,判断其等级:优秀(90分以上);良好(80分以上90分以下);中等(70分以上80分以下);及格(60分以上70分以下);不及格(60分以下)。publicstaticvoidmain(String[]args)throwsIOException{floatscore;InputStreamReaderreader=newInputStreamReader(System.in);BufferedReaderinput=newBufferedReader(reader);System.out.println(请输入分数:);Stringtemp=input.readLine();score=Float.parseFloat(temp);if(score90)if(score80)if(score70)if(score60)System.out.println(该同学的分数等级为:不及格);elseSystem.out.println(该同学的分数等级为:及格);elseSystem.out.println(该同学的分数等级为:中等);elseSystem.out.println(该同学的分数等级为:良好);elseSystem.out.println(该同学的分数等级为:优秀);}【例3-13】假定个人收入所得税的计算方式如下:当收入额小于等于1800元时,免征个人所得税;超出1800元但在5000元以内的部分,以20%的税率征税;超出5000元但在10000元以内的部分,按35%的税率征税;超出10000元的部分一律按50%征税。试编写相应的征税程序。doubleincome,tax;……tax=0;if(income=1800)System.out.println(免征个税.);elseif(income=5000)tax=(income-1800)*0.2;elseif(income=10000)tax=(5000-1800)*0.2+(income-5000)*0.35;elsetax=
本文标题:Java-第3章-分支结构
链接地址:https://www.777doc.com/doc-7315457 .html