java程序设计教程 第4章-Java程序流程控制.ppt
《java程序设计教程 第4章-Java程序流程控制.ppt》由会员分享,可在线阅读,更多相关《java程序设计教程 第4章-Java程序流程控制.ppt(61页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第4章章 Java程序流程控制程序流程控制 本章学习目标本章学习目标 l理解复合语句概念。l掌握if、if-else语句以及switch语句等分支结构。l掌握while、do-while以及for语句等循环结构。l掌握break和continue等跳转语句。l基本掌握分支及循环结构的相互嵌套编程。l学会分析较复杂程序的执行流程。4.1 复合语句复合语句l在Java语言中,有简单语句和复合语句之分。l一条简单语句总是以分号结束,它代表一个要执行的操作,可以是赋值、判断或者跳转等语句,甚至还可以是只有分号的空语句(;),空语句表示不需要执行任何的操作。l而复合语句则是指用大括号括起来的语句块(b
2、lock),它一般由多条语句构成,但也允许只有一条简单语句。复合语句复合语句l格式如下:简单语句1;简单语句2;简单语句n;l比如以下例子均为复合语句:a=1;b=2;或 S=0;l复合语句在后面的流程控制结构中经常要用到,比如需要多个语句作为一个“整体语句”出现时就必须用大括号将其括起来作为一条复合语句。lJava程序的语句流程可以分为以下三种基本结构:顺序结构、分支(选择)结构以及循环结构。l对于分支结构和循环结构,当条件语句或者循环体语句多于一条时,必须采用复合语句的形式,即用大括号将其括起来,否则系统将默认条件语句或循环体语句仅有一条,即最近的那一条。l反过来说,当条件语句或者循环体语
3、句只有一条时,则可用可不用大括号,这点请初学者学习后面内容时注意留心。4.2 顺序结构顺序结构l由赋值语句以及输入输出语句构成的程序,只能按其书写顺序自上而下,从左到右依次执行,将此类程序结构称为顺序结构。l它是最简单的程序结构,也是计算机执行的最一般流程。【例4-1】交换两变量的值。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;
4、System.out.println(a,b的新值);System.out.println(a=+a);System.out.println(b=+b);【例4-2】已知三角形的三条边长,求它的面积。提示:面积=其中,public class Test public 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);4.3 分
5、支结构分支结构 l分支结构也叫选择结构,分支结构表示程序中存在分支语句,这些语句根据条件的不同,将被有选择地加以执行(取决于条件表达式的取值情况)。l分支结构:单分支、双分支和多分支结构。lJava语言的单分支是if语句,双分支是if-else语句,多分支是switch语句,实现时,也可以用switch语句构成双分支结构,或者用if-else语句嵌套构成多分支结构。4.3.1 单分支条件语句单分支条件语句 l单分支条件语句的一般格式是: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
6、!=j)i+;j+;【例例4-4】乘坐飞机时,每位顾客可以免费托运乘坐飞机时,每位顾客可以免费托运20kg以内的行李,超过部分假定按每公斤收费以内的行李,超过部分假定按每公斤收费1.2元的话,试编写相应计算收费的程序。元的话,试编写相应计算收费的程序。l(1)数据变量:w-行李重量(以公斤为单位)fee-收费(单位元)根据数据的特点,变量的数据类型必须为浮点型,不妨定为float类型。l(2)算法:0 w 20 (3)由System.out.println();语句提示用户输入数据(行李重量),然后通过利用前述的交互式输入方法给w变量赋值。l(4)由单分支结构,构成程序段即对用户敲入的数据进行
7、判断,并按收费标准计算收费额。程序段局部如下:.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=new InputStreamReader(System.in);BufferedReader input=new BufferedReader(reader);System.out.println(
8、请输入旅客的行李重量:);String temp=input.readLine();w=Float.parseFloat(temp);/字符串转换为单精度浮点型 fee=0;if(w 20)fee=(float)1.2*(w-20);System.out.println(该旅客需交纳的托运费用:+fee+元);【例4-5】根据年龄,判断某人是否为成年。public class Test public static void main(String args)byte age=20;if(age=18)System.out.println(成年);if(age=0&rabbit=0)System
9、.out.println(鸡有+chick+只);System.out.println(兔有+rabbit+只);4.3.2 双分支条件语句lJava语言的双分支结构由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-;【例4-7】鸡兔问题的改进。public class Test public static void main(String args
10、)double chick,rabbit;short heads=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(数据输入可能有误!);【例4-8】根据年龄,判断某人是否为成年,用双分支实现。public class Test public static void main(Strin
11、g args)byte age=20;if(age=18)System.out.println(成年);else System.out.println(未成年);【例4-9】判断2020的奇偶性,并进行输出?public class Test public static void main(String args)short n=2020;if(n%2=0)System.out.println(2020是偶数。);else System.out.println(2020是奇数。);l【例4-10】判断并输出2020年是否为闰年?l 闰年的判断是能被4整除但又不能被100整除,或能被400整除的
12、公元年,因此闰年的判断可以用一个布尔表达式来实现。public class Test public static void main(String args)boolean leapYear;short year=2020;leapYear=(year%4=0&year%100!=0)|(year%400=0);if(leapYear)System.out.println(2020是闰年。);else System.out.println(2020不是闰年。);4.3.3 分支结构嵌套lJava语言允许对if-else条件语句进行嵌套使用。前述分支结构的语句部分,可以是任何语句(包括分支语句本
13、身),我们把分支结构的语句部分仍为分支结构的情况,称为分支结构嵌套。l构造分支结构嵌套的主要目的是解决条件判断较多,较复杂的一些问题。l常见的嵌套结构如下所示: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(“i=”+i+”,j
14、=”+j);-else System.out.println(“i=”+i+”,j=”+j);-.-【例例4-11】根据某位同学的分数成绩,判断其等级:优秀(根据某位同学的分数成绩,判断其等级:优秀(90分以分以上);良好(上);良好(80分以上分以上90分以下);中等(分以下);中等(70分以上分以上80分以下);分以下);及格(及格(60分以上分以上70分以下);不及格(分以下);不及格(60分以下)。分以下)。public static void main(String args)throws IOException float score;InputStreamReader reade
15、r=new InputStreamReader(System.in);BufferedReader input=new 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.
16、out.println(该同学的分数等级为:中等);else System.out.println(该同学的分数等级为:良好);else System.out.println(该同学的分数等级为:优秀);【例例4-13】假定个人收入所得税的计算方式如下:当收入额小于等于假定个人收入所得税的计算方式如下:当收入额小于等于1800元时,免征个人所得税;超出元时,免征个人所得税;超出1800元但在元但在5000元以内的部分,元以内的部分,以以20%的税率征税;超出的税率征税;超出5000元但在元但在10000元以内的部分,按元以内的部分,按35%的的税率征税;超出税率征税;超出10000元的部分一律
17、按元的部分一律按50%征税。试编写相应的征税征税。试编写相应的征税程序。程序。double income,tax;tax=0;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;else tax=(5000-1800)*0.2+(10000-5000)*0.35 +(income-10000)*0.5;System.out.println(您的个人收入所得税额为:
18、+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;else tax=(5000-1800)*0.2+(10000-5000)*0.35+(income-10000)*0.5;4.3.4 switch语句lJava语言多分支结构的实现语句是switch,switch语句的一般语法格式如下:switch(表达式表达式)case 判断值判断值1:
19、语句语句1;case 判断值判断值2:语句语句2;.case 判断值判断值n:语句语句n;default:语句语句n+1;switch语句l表达式的值必须为有序数值(如整型数或字符等),不能为浮点数。lcase语句中的判断值则须为常量值,也可称之为标号,它代表一个case分支的入口,每一个case分支后面的语句可以是单条的,也可以是多条的,并且当有多条语句时,不需要加大括号将其括起来。ldefault子句是可选的,并且其位置必须在switch结构的末尾,当表达式的值与任何case常量值均不匹配时,就执行default子句,然后就退出switch结构了。l若表达式的值与任何case常量值均不匹配
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java程序设计教程 第4章-Java程序流程控制 java 程序设计 教程 程序 流程 控制
限制150内