《Java套课件幻灯片完整版ppt教学教程最全电子讲义(最新).pptx》由会员分享,可在线阅读,更多相关《Java套课件幻灯片完整版ppt教学教程最全电子讲义(最新).pptx(609页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Java面向对象程序设计第一章 走进Java1JavaJava语言简介语言简介3编写编写HelloWorldHelloWorld程序程序CONTENTS目录2开发前准备开发前准备4JavaJava跨平台特性与跨平台特性与JVMJVM1JavaJava故事故事编程环境编程环境编程工具编程工具技术应用技术应用 Java语言简介Java故事1.1.1 Java是SUN公司的产品,从1996年发布JDK1.0以来,经过多年的发展陆续发布了JDK1.1,JDK1.2,JDK1.3,JDK1.4,JDK1.5版本。2009年,甲骨文(Oracle)公司宣布收购SUN,甲骨文公司又陆续发布了JDK6.0,J
2、DK7.0,2014年发布了JDK8.0版本。JAVA是一个小岛产的咖啡的名字,味道独特。SUN公司使用JAVA这个名称寓意着做Java程序就像享受咖啡一样,享受生活。如图所示,用一杯热腾腾的咖啡作为Java的标志。James Gosling(詹姆斯高斯林)出生于加拿大,是一位计算机编程天才。在卡内基梅隆大学攻读计算机博士学位时,他编写了多处理器版本的Unix操作系统,是JAVA编程语言的创始人,被称为Java之父。如图1.2是James Gosling的工作照片。Java编程环境1.1.2(1)Java开发工具包 JDK(Java Development Kit)称为Java开发包,是一个编
3、写Java应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一些Java工具和Java的核心类库(Java API)。可以把Java API类库中的Java SE API子集和Java虚拟机这两部分统称为JRE(JAVA Runtime Environment),JRE是支持Java程序运行的标准环境。(2)Java运行时环境 JRE是个运行环境,JDK是个开发环境,如图所示是JDK结构图。因此写Java程序的时候需要JDK,而运行Java程序的时候就需要JRE。而JDK里面已经包含了JRE,因此只要安装了JDK,就可
4、以编辑Java程序,也可以正常运行Java程序。Java编程工具1.1.3Eclipse:一个开放源代码的、基于Java的可扩展开发平台。NetBeans:开放源码的Java集成开发环境,适用于各种客户机和Web应用。IntelliJ IDEA:在代码自动提示、代码分析等方面的具有很好的功能。MyEclipse:由Genuitec公司开发的一款商业化软件,是应用比较广泛的Java应用程序集成开发环境。EditPlus:如果正确配置Java的编译器“Javac”以及解释器“Java”后,可直接使用EditPlus编译执行Java程序。Java技术应用1.1.4(1)Android应用许多的 An
5、droid应用都是Java程序员开发者开发。虽然 Android运用了不同的JVM以及不同的封装方式,但是代码还是用Java语言所编写。相当一部分的手机中都支持JAVA游戏,这就使很多非编程人员都认识了JAVA。(2)在金融业应用的服务器程序Java在金融服务业的应用非常广泛,很多第三方交易系统、银行、金融机构都选择用Java开发,因为相对而言,Java较安全。(3)网站Java 在电子商务领域以及网站开发领域占据了一定的席位。开发人员可以运用许多不同的框架来创建web项目,SpringMVC,Struts2.0以及frameworks。(4)嵌入式领域Java在嵌入式领域发展空间很大。在这个
6、平台上,只需130KB就能够使用Java技术(在智能卡或者传感器上)。Java技术应用1.1.4(5)大数据技术Java技术在大数据处理领域应用广泛。例如Hadoop是一个由美国Apache基金会所开发的分布式系统基础架构,以一种可靠、高效、可伸缩的方式进行大数据处理。Hadoop主要是基于Java进行开发的。(6)高频交易Java平台提高了高频交易的特性和即时编译,他同时也能够像C+一样传递数据。正是由于这个原因,Java成为的程序员编写交易平台的语言,因为虽然性能不比C+,但开发人员可以避开安全性,可移植性和可维护性等问题。(7)科学应用Java在科学应用中是很好选择,包括自然语言处理。最
7、主要的原因是因为Java比C+或者其他语言相对其安全性、便携性、可维护性以及其他高级语言的并发性更好。2下载和安装下载和安装JDKJDK配置配置JDKJDK的环境变量的环境变量开发前准备下载和安装JDK1.2.1 在开发一个Java应用程序前,首先要确保计算机上安装有JDK,JDK可以从Oracle公司的网站上(http:/ JDK(Java Development Kit),即Java开发工具包,是Oracle公司提供的用于开发Java应用程序的标准开发工具包。一台电脑要想运行Java程序,必须安装JDK。JDK中包含JRE(Java Runtime Environment),JRE是Jav
8、a运行时环境。JRE中包含了JVM(Java Virtual Machine)即Java虚拟机和JCL(Java Class Library)即Java类库。从官方下载JDK后进行安装,默认安装到C:Program FilesJavajdk1.8.0_121目录下。如图1.5所示是JDK的根目录。JDK的目录中包含两个重要目录,它们是bin目录和lib目录。bin目录中存放JDK的命令,lib目录存放系统类库。配置JDK的环境变量1.2.2 JDK安装后要对JDK进行环境变量配置,环境变量需要配置3个属性,如表所示。变量名变量值JAVA_HOMEJDK的安装根目录CLASSPATHJAVA_H
9、OME下lib目录中的所有jar文件和当前目录PATHJAVA_HOME下bin目录中所有的文件假设JDK的安装目录为C:Program FilesJavajdk1.8.0_121,环境变量配置如下:JAVA_HOME环境变量的值是JDK的安装根目录,CLASSPATH环境变量的值是JAVA_HOME目录下的(lib)目录和点(.),PATH环境变量的值是JAVA_HOME目录下的bin目录。具体配置如表所示。变量名变量值JAVA_HOMEC:ProgramFilesJavajdk1.8.0_121CLASSPATH%JAVA_HOME%lib;.PATH%JAVA_HOME%bin3编写He
10、lloWorld程序编写HelloWorld程序1.3开发一个Java程序分3步,如下:1.创建Java源程序。2.将源程序编译为字节码文件。3.执行字节码文件。第一步:创建Java源程文件Java源文件是以.java结尾的文本文件,是程序员创建和编写的。新建一个记事本文件,将该文件命名为HelloWorld.java并保存到C盘根目录下。在HelloWorld.java文件中输入右面的代码。/*HelloWorld程序*/public class HelloWorldpublic static void main(String args)System.out.println(HelloWor
11、ld);编写HelloWorld程序1.3第二步:将源文件编译为字节码文件 字节码文件是以.class结尾的文件,字节码文件通过Javac编译器编译出来的。打开控制台,在控制台中使用Java编译器命令(javac)将java源文件编译成字节码文件,字节码文件是以.class为扩展名的文件。编译后会在C盘根目录下产生编译完的HelloWorld.class字节码文件,字节码文件是不允许修改的,只能修改源文件后重新生成字节码文件。第三步:运行字节码文件 在控制台中使用java解释器命令(java)运行HelloWorld字节码文件,显示java程序运行结果。4JavaJava跨平台跨平台编译和解释
12、编译和解释开发前准备Java跨平台1.4.1 我们以HelloWorld程序为例,分析Java程序执行过程和Java跨平台的特性。Java是跨平台的语言,平台是指操作系统和CPU,每个平台能够运行与该平台匹配的机器码。Java跨平台就是让所有的平台都能运行Java代码。Java是如何做到的呢?Java是通过JVM(Java Virtual Machine),即Java虚拟机来实现的。所有的Java源程序(Source.java)都可以编译成字节码(Source.class),字节码可以执行在任何一个JVM上,JVM可以运行在专用的平台上,例如JVM for DOS,JVM for window
13、s,JVM for Unix等,如图1.14所示。所有的JVM都可以将字节码文件(Source.class)转换成平台对应的机器码。Java跨平台1.4.1 回顾Java程序执行的3个步骤。即从Java源文件到字节码文件到执行。Java程序的执行过程是首先通过java编译器命令javac,将Java源程序编译成字节码文件,字节码文件在虚拟机中使用java解释器命令java,将字节码文件转换成机器码,机器码运行在各自的平台上,以此实现java跨平台。跨平台是Java最显著的特性,Java还有一些其他特性。例如:简单性,面向对象,分布性,编译和解释性,稳健性,安全性,可移植性,高性能,多线程性,动
14、态性等,这些特性需要在后续的学习中体会。1.1.在在计计算机上配置算机上配置JavaJava开开发环发环境。境。2.2.利用利用JavaJava输输出自我介出自我介绍绍,格式如下:,格式如下:本章课后任务【基本信息】姓名:张三性别:男年龄:24岁身高:1.85cm3.3.通通 过过 上上 机机 练练 习习 体体 会会 System.out.print()System.out.print()和和 System.out.printlnSystem.out.println()()的区的区别别。.谢谢聆听THANKYOUJava面向对象程序设计第二章 变量与表达式北京科学出版社 主编:李恒杰1数据类型
15、与变量数据类型与变量3数据类型和转换数据类型和转换CONTENTS目录2表达式和运算符表达式和运算符1数据类型数据类型变量变量变量命名规则变量命名规则数据类型与变量数据类型2.1.1 数据是描述客观事物的数字、字母以及能够输入到计算机中的符号。例如“武松”、“软件一班”、28、170等都是数据。数据可根据其特点进行分类,例如“武松”和“软件一班”可以归为字符串类,28和170可归为数字类。在Java中数据类型分为两大类:基本数据类型和引用数据类型。基本类型包括八种,分别是byte,short,int,long,float,double,boolean,char,下表展示了八种基本数据类型。引用
16、类型包括数组、接口、类等,除了基本类型以外的数据都是引用类型。数据类型2.1.1数据类型数据类型占用空间占用空间保存范围内保存范围内使用举例使用举例boolean布尔型1字节true或false保存性别、婚否byte字节型1字节-128127对字节操作时使用,如文件读写char字符型2字节065535保存单个字母或汉字时使用short短整型2字节-3276832767保存较小的整数时使用int整型4字节-21474836482147483647保存一般的整数时使用long长整型8字节-92233720368547758089223372036854775807保存较长的整数时使用float浮点
17、型(单精度)4字节3.402823e+381.401298e-45保存小数时使用double浮点型(双精度)8字节1.797693e+3084.9000000e-324保存精度较高的小数时使用数据类型2.1.2 变量是指在程序运行过程中其值可以改变的量。变量的使用必须先声明,然后初始化,最后才能使用变量。变量的声明语法:修饰符 数据类型 变量名称=值;例如int age=28;int age;int age,score;float f=1.2F;double d=2.0D;long L=38L;变量命名规则2.1.3 Java语言是区分大小写的,变量的命名也有规范,下表列举了变量命名规则。规则
18、规则正确示例正确示例错误示例错误示例变量名不能以数字开头a33a除了“_”或“$”符号外,变量名中不能包含其他标点符号或运算符my$It%it变量名不能使用Java语言中的关键字Longerlong,void,class 每个公司在开发中都有自己定义变量的规范,无论各公司规范是否相同,都会遵循“见名知义”的原则。2表达式表达式运算符运算符表达式和运算符表达式2.2.1 表达式是运算符和操作数的有效组合,操作数可以是变量、常量、方法调用的返回值。例如表达式 z=x+y中z、x、y是操作数,=、+是运算符。如图描述了表达式是由运算符和操作数组成的。运算符2.2.2 1:算术运算符。算术运算符用来完
19、成数学上的加、减、乘、除四则运算。如表展示了算术运算符。运算符运算符示例示例说明说明+3+2加法运算符,求两个操作数的和。-3-2减法运算符,求两个操作数的差。*3*2乘法运算符,求两个操作数的积。/3/2除法运算符,求两个操作数的商。%3%2求余运算符,求两个整数的余数。+inta=3;+a或者a+或者a+自增运算符,a+相当于 a=a+1。相当于 a=a+1。-inta=3;-a或者a或者a-自减运算符,a-相当于 a=a-1相当于 a=a-1。运算符2.2.2 代码示例 public class Task1 public static void main(String args)int
20、width=30;double height=10.5;double result=(width+height)*2;System.out.print(矩形的周长是:+result);任务一:求矩形周长任务一:求矩形周长该任务根据给定的宽和高求出矩形的周长。运算符2.2.2老兵带你分析代码:程序中定义了int类型的变量width,初始化为30,定义了double类型的变量height,初始化为10.5,定义了表达式(width+height)*2,并将表达式的结果赋值给double类型的变量result,最后向控制台输出矩形的周长。运算符2.2.2public class Task2 publ
21、ic static void main(String args)int width=30;int height=10;double result=width*height/2;System.out.print(三角形的面积是:+result);任务二:求三角形面积任务二:求三角形面积该任务根据给定的宽和高求出三角形的面积。运算符2.2.2老兵带你分析代码:程序中定义了int类型的变量width,初始化为30,定义了int类型的变量height,初始化为10,定义了表达式width*height/2,并将表达式的结果赋值给double类型的变量result,最后向控制台输出三角形的面积。运算符2
22、.2.2public class Task3 public static void main(String args)int i=5,x;x=i+;System.out.println(x=+x);System.out.println(i=+i);x=+i;System.out.println(x=+x);System.out.println(i=+i);任务三:剖析自增和自减任务三:剖析自增和自减该任务剖析自增和自减运算在赋值运算中的执行顺序。运算符2.2.2老兵带你分析代码:1.程序中定义了int类型的变量i,初始化为5,定义了int类型的变量x。定义了表达式x=i+,在该表达式中有两个运
23、算,一是赋值运算,二是自增运算,由于+写在变量i的后面,因此+运算要后于赋值运算。即先将i的值赋给x后,i再自增。运行的结果是x的值是5,i的值是6。2.程序中定义了表达式x=+i,在该表达式中有两个运算,一是赋值运算,二是自增运算,由于+写在变量i的前面,因此+运算要先于赋值运算。即先将i的值自增,然后再将自增后的i的值赋给x。运行的结果是x的值是7,i的值是7。运算符2.2.22:关系运算符关系运算符用于操作数之间的比较。下表展示了关系运算符。运算符运算符示例示例说明说明ab如果ab成立,结果为true,否则结果为falseab成立,结果为true,否则结果为false=a=b如果a=b成
24、立,结果为true,否则结果为falsea=b成立,结果为true,否则结果为falseab如果ab成立,结果为true,否则结果为falseab成立,结果为true,否则结果为false=a=b如果a=b成立,结果为true,否则结果为falseab成立,结果为true,否则结果为false=b成立,结果为true,否则结果为false!=a!=b如果a!=b成立,结果为true,否则结果为falsea!=b成立,结果为true,否则结果为false运算符2.2.23:逻辑运算符逻辑运算符是对布尔类型的操作数进行与、或、非的运算。下表展示了逻辑运算符。运算符运算符示例示例说明说明&ab&ac
25、a大于b,并且a大于c大于b,并且a大于c|ab|aca大于b,或者a大于c大于b,或者a大于c!!(ab)a大于b不成立大于b不成立运算符2.2.24:位运算位运算是对整数类型的操作数进行的二进制运算,包括7个:分别是 (位反)、&(位与)、|(位或)、(位异或)、(右位移)、(无符号右位移)。5:算术复合运算符算术复合运算符是多个算术运算同时进行的计算。包括+=、-=、*=、/=、%=。下表展示了符合运算符。表达式表达式等价的等价的Java代码代码运行的结果运行的结果a+=3a=a+3a的结果是13a-=3a=a3a的结果是7a*=3a=a*3a的结果是30a/=3a=a/3a的结果是3a
26、%=3a=a%3a的结果是1运算符2.2.26:运算符的优先级 当表达式中有多个运算符参与运算时,必须为每种运算符规定一个优先级,以决定运算符在表达式中的运算次序。优先级高的先运算,优先级低的后运算,优先级相同的由结合性确定计算次序。下表展示了运算符的优先级及结合性。运算符运算符优先级优先级结合性结合性 1从左向右!+-+(一元运算)-(一元运算)一元运算)-(一元运算)2从右向左*/%3从左向右+-4从左向右 5从左向右 =instanceof6从左向右=!=7从左向右&8从左向右9从左向右|10从左向右&11从左向右|12从左向右?:13从右向左=+=-=*=/=%=&=|=14从右向左运
27、算符2.2.2 该任务涉及了如何从键盘上输入数据。Java在JDK中提供了很多已经开发好的类库,在程序开发过程中可以直接使用。java.util.Scanner类提供了获取用户在控制台中输入的数据的功能。使用时分两步:1、创建Scanner对象,该对象用于接收用户在控制台中输入的数据。java.util.Scanner input=new java.util.Scanner(System.in);2、使用Scanner对象提供的方法获取用户输入的数据:int score=input.nextInt();任务四:新兵老兵成绩大比拼任务四:新兵老兵成绩大比拼该任务是从键盘上输入新兵和老兵的java
28、成绩和数据库成绩,然后比较成绩。运算符2.2.2代码示例:public class Task4 public static void main(String args)Scanner input=new Scanner(System.in);int xb_java;int xb_sql;int lb_java;int lb_sql;System.out.println(请输入新兵的java成绩);xb_java=input.nextInt();System.out.println(请输入新兵的sql成绩);xb_sql=input.nextInt();运算符2.2.2代码示例:System.o
29、ut.println(请输入老兵的java成绩);lb_java=input.nextInt();System.out.println(请输入老兵的sql成绩);lb_sql=input.nextInt();System.out.println(新兵java成绩追上老兵了吗?+(xb_java lb_java);System.out.println(新兵sql成绩追上老兵了吗?+(xb_sql lb_sql);System.out.println(新兵每门课成绩都追上老兵了吗?+(xb_sql lb_java)&(xb_java lb_java);运算符2.2.2运行结果:请输入新兵的java
30、成绩78请输入新兵的sql成绩89请输入老兵的java成绩83请输入老兵的sql成绩92新兵java成绩追上老兵了吗?false新兵sql成绩追上老兵了吗?false新兵每门课成绩都追上老兵了吗?false运算符2.2.2 Scanner对象中提供了多种方法用于输入不同类型的数据,下表展示了Scanner对象输入不同类型数据的方法。方法方法作用作用next输入字符串nextInt输入int类型整数nextShort输入short类型整数nextLong输入long类型整数nextFloat输入float类型浮点数nextDouble输入double类型浮点数nextByte输入byte类型数据
31、3类型转换类型转换表达式的数据类型表达式的数据类型数据类型转换类型转换2.3.1 当将一种数据类型的值赋给另一种数据类型的变量时,出现了数据类型的转换。在整数类型和浮点数类型中,可以将数据类型按照精度从“高”到“低”排列如下级别:double float long int short byte高级别-低级别赋值运算中,数据类型转换规则如下:1:当将低级别的值赋给高级别的变量时,系统会自动完成数据类型的转换。例如:int i=52;float x;x=i;/自动转换类型转换2.3.1 2:当将高级别的值赋给低级别的变量时,必须进行强制类型转换。强制类型转换的形式如下:(类型标识符)待转换的值;例
32、如:float f=1.6F;int i=(int)f;/将float类型的值转换成int类型的值后存储到int类型变量i中。强制类型转换可能会造成数据丢失,如上例中f的值是1.6,转换成int类型后会丢失精度,i的值是1。类型转换2.3.1public class Task5 public static void main(String args)int i=15,j=4,k;float f1,f2;k=i/j;f1=i/j;f2=(float)i/j;System.out.println(k=+k);System.out.println(f1=+f1);System.out.println
33、(f2=+f2);任务五:整数相除任务五:整数相除该任务通过整数相除研究数据类型转换。类型转换2.3.1老兵带你分析代码:1.程序中声明了3个int类型的变量i、j、k。并给i和j分别初始化为15和4,还声明了两个float类型的变量f1和f2。在“k=i/j”中,int类型值15与4进行整除运算,其结果是int类型值3,并将该值赋值给int类型变量k,所以k的值是3。通过“f1=i/j”,int类型值15与4进行整除运算,其结果是int类型值3,在将该值赋给float类型变量f1时,系统自动进行数据类型转换,将int类型值3转换成float类型值3.0,并将转换后的值赋给f1,所以f1的值是
34、3.0。在“f2=(float)i/j”中,int类型值15被强制转换成float类型值15.0,该值与int类型值4进行除法运算时,系统自动将int类型值4转换成float类型值4.0,然后对15.0与4.0进行除法运算,其结果是float类型值3.75,最后将该值赋给float类型变量f2,所以f2的值是3.75。表达式的数据类型2.3.2 表达式的数据类型由运算结果的数据类型决定。例如:public class Example1 public static void main(String args)int i=5;float f=6f;double d=7.8d;double resu
35、lt=i+f+d;表达式result=i+f+d中的操作数i是int类型,f是float类型,d是double类型,计算的结果result的类型是表达式中占用字节空间最大的类型,即double类型。1.1.请请描述描述变变量声明量声明规则规则与与规规范。范。2.2.请请写出写出JavaJava中的中的8 8种基种基础础数据数据类类型的名称,以及占用的字型的名称,以及占用的字节节数量。数量。3.3.请请描述描述发发生自生自动类动类型型转换转换的条件。的条件。4.4.通通过过代代码码试试验验将将较较大大的的longlong类类型型的的变变量量(值值大大于于intint型型能能够够描描述述的的最最大
36、大数数字字)强强制制转转换为换为intint类类型后的型后的值值是多少。是多少。5.5.表达式表达式123+456.58+”Imlucky”123+456.58+”Imlucky”的的值值是多少?是多少?本章课后任务6.6.分析下面的程序运行分析下面的程序运行结结果果1 1:byteb=1;byteb=1;2 2:shorts=2;shorts=2;3 3:shortx=s+b;shortx=s+b;第第3 3行行报错报错,因,因为为shortshort类类型型+byte+byte类类型型=int=int类类型型shortshort类类型型+shrot+shrot类类型型=int=int类类型
37、型bytebyte类类型型+byte+byte类类型型=int=int类类型型7.7.分析下面的程序运行分析下面的程序运行结结果果shorts=1;/1shorts=1;/1在在shortshort范范围围内,所以可以内,所以可以赋值赋值s=s+1;/1s=s+1;/1是是intint类类型,运算后提升到型,运算后提升到intint类类型,不能型,不能赋值给赋值给shortshort类类型型本章课后任务8.8.分析下面的程序运行分析下面的程序运行结结果果shorts=1;/1shorts=1;/1在在shortshort范范围围内,所以可以内,所以可以赋值赋值s=18+1;/18+1s=18+
38、1;/18+1在在编译时编译时确定了其确定了其值值在在shortshort范范围围内,因此可以内,因此可以赋值赋值本章课后任务.谢谢聆听THANKYOUJava面向对象程序设计第三章 分支结构北京科学出版社 主编:李恒杰1ifif分支结构分支结构CONTENTS目录2switchswitch分支结构分支结构1三元表达式三元表达式嵌套的嵌套的ifif语句语句并列的并列的ifif语句语句if分支结构if分支结构3.1 程序中有些程序段的执行是有条件的,当条件成立时,执行一些程序段,当条件不成立时执行另一些程序段或者不执行,这种结构称为分支结构,也叫选择结构。if语句是最常用的分支结构,其中的条件用
39、布尔表达式表示。如果布尔表达式的值为true,表示条件满足,执行某一语句。如果布尔表达式的值为false,表示条件不满足,执行另一语句。if语句是二分支的选择语句。if分支结构3.1if语法格式:if(布尔表达式)语句1;else语句2;说明:1.如果布尔表达式的值为true,执行语句1;否则执行语句2。2.其中else子句是可选的。3.如果没有else子句,在布尔表达式的值为false时,什么也不执行,形成单分支。if分支结构3.1if语句执行流程如图3.1所示。单分支 二分支 if分支结构3.1 代码示例public class Task1 public static void main(
40、String args)Scanner input=new Scanner(System.in);int likui,yanqing;System.out.println(请输入新兵李逵的成绩);likui=input.nextInt();System.out.println(请输入新兵燕青的成绩);yanqing=input.nextInt();任务一:评选优秀标兵任务一:评选优秀标兵从键盘上输入新兵李逵和燕青的成绩,成绩高者立为标兵。if分支结构3.1代码示例:if(likuiyanqing)System.out.println(新兵李逵被选为新兵标兵);elseSystem.out.pr
41、intln(新兵燕青被选为新兵标兵);if分支结构3.1老兵带你分析代码:1.程序中的布尔表达式likuiyanqing成立时执行System.out.println(新兵李逵被选为新兵标兵);否则执行System.out.println(新兵燕青被选为新兵标兵);运行结果:请输入新兵李逵的成绩78请输入新兵燕青的成绩87新兵燕青被选为新兵标兵三元表达式3.1.1 新兵一班和二班进行了一场射击比赛,从键盘上输入一班和二班的比赛成绩,显示比赛成绩优先的班。这个问题我们可以使用if语句实现,参考代码如下:public class Demo1 public static void main(Stri
42、ng args)Scanner input=new Scanner(System.in);int b1,b2,max;System.out.println(请输入一班比赛成绩);b1=input.nextInt();System.out.println(请输入二班比赛成绩);b2=input.nextInt();三元表达式3.1.1 新兵一班和二班进行了一场射击比赛,从键盘上输入一班和二班的比赛成绩,显示比赛成绩优先的班。这个问题我们可以使用if语句实现,参考代码如下:public class Demo1 public static void main(String args)Scanner
43、input=new Scanner(System.in);int b1,b2,max;System.out.println(请输入一班比赛成绩);b1=input.nextInt();System.out.println(请输入二班比赛成绩);b2=input.nextInt();三元表达式3.1.1 if(b1b2)max=b1;elsemax=b2;System.out.println(优胜班的成绩是+max);运行结果:请输入一班比赛成绩88请输入二班比赛成绩99优胜班的成绩是99三元表达式3.1.1 类似的像上面这段程序,如果条件成立时为变量max赋值b1,条件不成立时为max赋值b2
44、,这里出现了三个操作数,分别是max,b1,b2。像这种运算可以使用三元运算符来实现。参考下面的代码import java.util.Scanner;public class Demo2 public static void main(String args)Scanner input=new Scanner(System.in);int b1,b2,max;System.out.println(请输入一班比赛成绩);b1=input.nextInt();三元表达式3.1.1 System.out.println(请输入二班比赛成绩);max=b1b2?b1:b2;System.out.pri
45、ntln(优胜班的成绩是+max);上面的代码中max=b1b2?b1:b2;就是一个三元表达式。三元表达式的语法规则是:关系或者逻辑表达式?成立时返回值:不成立时返回值,当b1b2成立时,将“:”前面的变量b1赋值给max;当b1b2不成立时,将“:”后面的变量b2赋值给max;运行结果:请输入一班比赛成绩88请输入二班比赛成绩99优胜班的成绩是99三元表达式3.1.1 相比于if语句,三元表达式的代码看上去更优雅。下表是if语句与三元表达式编码形式的比较。if三元表达式三元表达式intb1=5,b2=10,max;if(b1b2)max=b1;elsemax=b2;intb1=5,b2=1
46、0,max;max=(b1b2)?b1:b2;嵌套的if语句3.1.2 if语句中包含了另外一个if语句就形成了if语句的嵌套。嵌套if语句的形式如下:if(布尔表达式)if(布尔表达式)任务二:判断闰年任务二:判断闰年从键盘上输入一个年份,判断是否是闰年。嵌套的if语句3.1.2 闰年的规律为:四年一闰,百年不闰,四百年再闰,其简单计算方法要满足如下两个条件:1.能被4整除而不能被100整除(如2004年就是闰年,1800年就不是闰年);2.能被400整除,如2000年是闰年;代码示例:import java.util.Scanner;public class Task2 public st
47、atic void main(String args)Scanner scanner=new Scanner(System.in);System.out.println(请输入年份);int year=scanner.nextInt();嵌套的if语句3.1.2if(year%4=0)if(year%100=0)if(year%400=0)System.out.println(是闰年);else System.out.println(不是闰年);else System.out.println(是闰年);else System.out.println(不是闰年);嵌套的if语句3.1.2老兵带你
48、分析代码:1.上例代码中的3个if语句是嵌套关系,当外层if语句成立时,才能进入内层的if语句执行。运行结果:请输入年份2018不是闰年并列的if语句3.1.3任务三:根据分数给出成绩级别任务三:根据分数给出成绩级别从键盘上输入新兵考试成绩,成绩规则如下:90 100 之间 成绩为A80 90 之间 成绩为B70 80 之间 成绩为C60 70 之间 成绩为D0 60 之间 成绩为 E并列的if语句3.1.3代码示例:import java.util.Scanner;public class Task3 public static void main(String args)Scanner s
49、canner=new Scanner(System.in);System.out.println(请输入成绩);int score=scanner.nextInt();if(score=90)System.out.println(成绩为:A);else if(score=80)System.out.println(成绩为:B);else if(score=70)System.out.println(成绩为:C);else if(score=60)System.out.println(成绩为:D);else System.out.println(成绩为:E);并列的if语句3.1.3老兵带你分析
50、代码:1.上例代码中的4个if语句是并列关系,并列的多个if语句只能执行其中一个分支。运行结果:请输入成绩78成绩为:C2表达式表达式运算符运算符switch分支结构switch分支结构3.2 当要从多个分支中选择一个分支去执行时,虽然可以使用并列的if语句,但是代码的可读性比较查。为此java提供了多分支选择语句switch语句。switch语句能够根据给定的表达式的值,从多个分支中选择一个分支来执行。switch语句的格式如下:switch(表达式)case 常量1:语句1;Break;case 常量2:语句2;Break;default:语句n;Break;switch分支结构3.2说明