JAVA程序设计语言基础2课件

上传人:壹****1 文档编号:567671710 上传时间:2024-07-22 格式:PPT 页数:125 大小:793.50KB
返回 下载 相关 举报
JAVA程序设计语言基础2课件_第1页
第1页 / 共125页
JAVA程序设计语言基础2课件_第2页
第2页 / 共125页
JAVA程序设计语言基础2课件_第3页
第3页 / 共125页
JAVA程序设计语言基础2课件_第4页
第4页 / 共125页
JAVA程序设计语言基础2课件_第5页
第5页 / 共125页
点击查看更多>>
资源描述

《JAVA程序设计语言基础2课件》由会员分享,可在线阅读,更多相关《JAVA程序设计语言基础2课件(125页珍藏版)》请在金锄头文库上搜索。

1、第第2 2章章 JavaJava程序设计语言基础程序设计语言基础Java开发环境Java语言基础控制结构1JAVA程序设计语言基础程序设计语言基础(2)JavaJava开发环境开发环境了解JAVA开发环境掌握J2SDK的安装和环境变量的设置方法理解path和classpath的作用学会创建第一个java应用程序并成功运行初步掌握编写java程序的注意事项2JAVA程序设计语言基础程序设计语言基础(2)上节回顾:上节回顾:JavaJava的编译与执行的编译与执行Java源程序源程序(.java文件文件)Java编译器编译器Java Bytecode(.class文件文件)RuntimeInter

2、preterBytecode 载入器载入器字节码校验器字节码校验器JITHardware3JAVA程序设计语言基础程序设计语言基础(2)JavaJava平台平台Java平台的概念平台:为程序提供运行环境的硬件和操作系统的总称Java平台:纯软件的,为Java提供统一的运行环境Java平台的组成结构Java虚拟机(JVM)Java应用程序接口(Java API)Java类库4JAVA程序设计语言基础程序设计语言基础(2)JavaJava平台平台 Java平台的组成结构平台的组成结构Java虚拟机:解释并运行Java二进制码Java API:由许多软件包组成,这些软件包可以实现很多功能,包括图形界

3、面功能5JAVA程序设计语言基础程序设计语言基础(2)JavaJava平台平台Java应用程序接口的主要内容应用程序接口的主要内容 6JAVA程序设计语言基础程序设计语言基础(2)JavaJava开发环境开发环境从http:/网站上免费下载J2SDK(Java2 Software Development Kit),并利用命令行方式操作javac(编译器);java(解释器)Java集成开发环境(IDE)有: NetBeans、Eclipse等 J2SDK的安装(演示)7JAVA程序设计语言基础程序设计语言基础(2)JavaJava开发环境开发环境目录结构目录结构安装安装SDK后产生如下目录结构

4、:后产生如下目录结构:bin目录:Java开发工具,包括Java编译器、解释器等demo目录:一些实例程序lib目录:Java开发类库jre目录: Java运行环境,包括Java虚拟机、运行类库等 8JAVA程序设计语言基础程序设计语言基础(2)JavaJava开发环境开发环境开发工具介绍开发工具介绍javac.exe-Java编译器,用来将java程序编译成Bytecode。java.exe-Java解释器,执行已经转换成Bytecode的 Java应用程序。jdb.exe-Java调试器,用来调试Java程序。javap.exe-反编译(将.class文件还原为.java)。javadoc

5、.exe-文档生成器,创建HTML文件。appletviwer.exe-Applet解释器,用来解释已经转换成Bytecode的Java小应用程序。9JAVA程序设计语言基础程序设计语言基础(2)JavaJava开发环境开发环境设置环境变量设置环境变量在在Windows 2000和和Window XP系统下,系统下,可以选择可以选择【控制面板控制面板】|【系统系统】|【高级高级】|【环境变量环境变量】。在出现的环境变量窗口中。在出现的环境变量窗口中包含包含【用户变量用户变量】和和【系统变量系统变量】,在系,在系统变量框中选择统变量框中选择【path】,单击,单击【编辑编辑】按钮,在弹出的按钮,

6、在弹出的【编辑系统变量编辑系统变量】窗口的窗口的【变量值变量值】框最后加上框最后加上 ; C:JDK安装路径安装路径bin;10JAVA程序设计语言基础程序设计语言基础(2)JavaJava语言开发环境语言开发环境什么是环境变量 查看环境变量的两种方式如何设置系统环境变量 path环境变量的作用 %path% 的意义如何解决使用java命令中的问题11JAVA程序设计语言基础程序设计语言基础(2)JavaJava语言开发环境语言开发环境实际操作讲解classpath的作用Java解释器是如何处理当前目录的如何解决当前目录的问题配置classpath的几个注意事项12JAVA程序设计语言基础程序

7、设计语言基础(2)创建第一个Java程序(1/4)1. 用记事本编写源程序:用记事本编写源程序:13JAVA程序设计语言基础程序设计语言基础(2)创建第一个创建第一个JavaJava程序程序(1/4)(1/4)源程序:/* 文件名: FirstApp.java* 功 能: 显示天天好心情!* 编写: 张三* 编写时间: 2004.06.03* 修改: 李四* 修改时间: 2004.08.15*/public class FirstApp public static void main(String args) / 显示天天好心情! System.out.println(天天好心情!); 类的名

8、称指明类为公共的类程序的入口程序中的语句命令行参数14JAVA程序设计语言基础程序设计语言基础(2)创建第一个Java程序 (1/4)(1/4)英文字母的大小写问题英文字母的大小写问题Java语言区分大小写,录入时必须严格按这语言区分大小写,录入时必须严格按这里给出的大小写里给出的大小写特别容易弄错的是特别容易弄错的是“System.out.println”,只有只有System是大写,是大写,out和和println都是小写都是小写例子对比:例子对比:“FirstApp”和和“firstapp”“System.out.println”,“system.out.println”和和“Syste

9、m.Out.Println”15JAVA程序设计语言基础程序设计语言基础(2)创建第一个创建第一个JavaJava程序程序 (1/4) (1/4)中文标点符号问题中文的分号和英文的分号很相似,但中文的分号后面有空白,英文的分号后面没有中文的右引号特别容易在输入中文字符串时出现,往往是在输入中文后随手输入了引号的缘故例子对比:中文的分号“;”和英文的分号“;”中文右引号,如:天天好心情!”16JAVA程序设计语言基础程序设计语言基础(2)关于关于JavaJava应用程序的说明应用程序的说明1.1.JavaJava中的基本程序单位是中的基本程序单位是类类, ,每一个程序中应该每一个程序中应该有一个

10、有一个公共类公共类2.2. public class public class FirstAppFirstApp就是声明了一个公共类就是声明了一个公共类3. 3. 其中其中FirstAppFirstApp是类的名称是类的名称, ,是由用户指定的是由用户指定的4. 公共类的名称必须与文件名一致公共类的名称必须与文件名一致5.5.每一个每一个JavaJava应用程序必须定义一个应用程序必须定义一个mainmain方法方法 public static void main(String args)public static void main(String args)6. 如果在一个如果在一个java

11、java程序文件中定义了多个类程序文件中定义了多个类, ,则则只能有一个只能有一个publicpublic的的, ,mainmain方法方法必须在必须在publicpublic的类里面的类里面17JAVA程序设计语言基础程序设计语言基础(2)创建第一个Java程序 (2/4)(2/4)2. 保存源程序保存源程序选定一个目录,如选定一个目录,如C:Java来保存文件来保存文件在在“文件名文件名”一栏敲入一栏敲入“FirstApp.java”,“保存类型保存类型”一栏选一栏选“所有文件所有文件”需要注意的问题需要注意的问题不要忘记了文件保存在什么位置不要忘记了文件保存在什么位置文件类型要选文件类型

12、要选“所有文件所有文件”,并敲入扩展名,否则,并敲入扩展名,否则可能保存为以可能保存为以txt为后缀的文本文件为后缀的文本文件18JAVA程序设计语言基础程序设计语言基础(2)创建第一个Java程序 (3/4)(3/4)3. 编译源程序编译源程序选选“程序程序”“附件附件”“命令提示符命令提示符”:闪烁的光标闪烁的光标 ,表示在这里输入命令。光标前,表示在这里输入命令。光标前的的 为当前路径。为当前路径。19JAVA程序设计语言基础程序设计语言基础(2)创建第一个创建第一个JavaJava程序程序 (3/4) (3/4) 敲入:敲入:cd Java,进入,进入 目录下目录下 敲入:敲入:dir

13、,显示该目录下的所有文件,显示该目录下的所有文件其中其中“FirstApp.java”就是保存的就是保存的Java源文件源文件20JAVA程序设计语言基础程序设计语言基础(2)创建第一个创建第一个JavaJava程序程序 (3/4)(3/4) 敲入:敲入:javac FirstApp.java 几秒钟后,如果提示符几秒钟后,如果提示符 重新出现,重新出现,没有提示任何信息,说明编译成功了。没有提示任何信息,说明编译成功了。编译成功之后,将产生一个字节码文件编译成功之后,将产生一个字节码文件FirstApp.class,它的文件名与类名相同,相,它的文件名与类名相同,相当于其它语言程序的可执行文

14、件当于其它语言程序的可执行文件21JAVA程序设计语言基础程序设计语言基础(2)创建第一个Java程序 (3/4)(3/4)再次敲入再次敲入dir命令,可以看到多了一个文件:命令,可以看到多了一个文件:字节码文件:以字节码文件:以.class作为文件后缀作为文件后缀22JAVA程序设计语言基础程序设计语言基础(2)创建第一个Java程序 (4/4)(4/4)4. 执行执行Java程序程序敲入命令:敲入命令:java FirstApp运行结果显示如下:运行结果显示如下:祝贺你,你的第一个程序运行成功了!祝贺你,你的第一个程序运行成功了!23JAVA程序设计语言基础程序设计语言基础(2)JAVA

15、AppletJAVA Applet简介简介在在Java中可以编写两类程序:中可以编写两类程序:应用程序(Applications)和Java Applet(小应用程序)。Java Applet是一种可以嵌入到HTML文档(即Web页)中的Java程序。当浏览器装入一个含有applet的Web页时, applet下载到该浏览器中,并开始执行。Applet可以在Internet中传输并在兼容Java的Web浏览器中运行。24JAVA程序设计语言基础程序设计语言基础(2)JAVA AppletJAVA Applet编写编写import java.awt.*;import java.applet.*;

16、public class HelloWorldApplet extends Applet public void paint(Graphics g)super.paint(g); g.drawString(“Hello World!”, 30, 30); 该程序的功能是:在坐标(该程序的功能是:在坐标(30,30)处输出字符串)处输出字符串“Hello World!”。 在这个程序中,没有实现在这个程序中,没有实现main()方法,这是方法,这是Applet与与Application(应用(应用程序)的区别之一。为了运行该程序,首先也应将其保存到一个名为程序)的区别之一。为了运行该程序,首先也

17、应将其保存到一个名为HelloWorldApplet.java的文件中,然后对其进行编译:的文件中,然后对其进行编译:D:Jjavaworkjavac HelloWorldApplet.java这样将得到字节码文件这样将得到字节码文件HelloWorldApplet.class。由于。由于Applet中没有中没有main()方法作为方法作为Java解释器的入口,我们必须编写解释器的入口,我们必须编写HTML文件,然后将文件,然后将Applet嵌嵌入其中,接着使用入其中,接着使用appletviewer来运行,或在支持来运行,或在支持Java的浏览器上运行。的浏览器上运行。 25JAVA程序设计

18、语言基础程序设计语言基础(2)JAVA AppletJAVA Applet编写编写该HTML文件如下。 My Applet 其中,使用标记来启动HelloWorldApplet,code属性指明字节码所在的文件,width和height属性指明applet所占区域范围。最后,我们将此HTML文件存入AppletExp.html,然后运行:C:JavaBookappletviewer AppExp.html此时,将弹出一个Applet浏览窗口,在其中指定区域显示“Hello World!”。 26JAVA程序设计语言基础程序设计语言基础(2)JAVA IDEJAVA IDEIDE(Integra

19、ted Development Environment )集成开发环境如:NetBeans、Eclipse、JCreator 等27JAVA程序设计语言基础程序设计语言基础(2)第第1 1周作业周作业1、搭建好Java环境2、复习本章、预习下章28JAVA程序设计语言基础程序设计语言基础(2)第第2 2章章 JavaJava程序设计语言基础程序设计语言基础Java开发环境Java语言基础控制结构29JAVA程序设计语言基础程序设计语言基础(2)JAVAJAVA语言基础语言基础标识符与关键字、分隔符基本数据类型、变量和常量操作运算符及表达式Java的输入输出30JAVA程序设计语言基础程序设计语

20、言基础(2)JAVAJAVA基本语法基本语法java代码的位置 java是严格区分大小写的 java是一种自由格式的语言 代码分为结构定义语句和功能执行语句功能执行语句的最后必须用分号结束31JAVA程序设计语言基础程序设计语言基础(2)标识符标识符在编写应用程序时,程序员对程序中的各个元素(变量、常量、对象、类、属性、方法)加以命名时使用的命名记号称为标识符(identifer)。JAVA标识符的命名规则:标识符的命名规则: 以英文以英文字母字母,下划线下划线_ ,或者美元符号或者美元符号$开头(即不能以数字开头(即不能以数字开头);开头);由以上三种字符与数字由以上三种字符与数字0到到9的

21、组合;的组合;标识符各字符之间不能有空格标识符各字符之间不能有空格;最大长度最大长度65535;区分大小写,如区分大小写,如_Student和和_student是两个不同的标示是两个不同的标示符。符。32JAVA程序设计语言基础程序设计语言基础(2)标识符标识符判断下列标识符是否合法判断下列标识符是否合法3d、$1000、Letter#、x0y、while、pri*i良好的编程习惯良好的编程习惯在定义标识符时,应该能反映它表示的变量、对象、类的意义;如:studentName或student_name习惯上,表示类、接口名的标识符用大写字母开头,表示变量、方法名的标识符用小写字母开头,表示常量

22、名的标示符全部用大写字母;标示符最好不用$。33JAVA程序设计语言基础程序设计语言基础(2)关键字关键字Java系统使用(保留)的关键字(Keyword)很多,它们有明确的含义,不能另做它用。关键字也叫保留字。程序员在编写JAVA程序时,使用的标识符一定不能包含如下页图所示的关键字。34JAVA程序设计语言基础程序设计语言基础(2)关键字关键字abstractdoimplementprivatethisbooleandoubleimportprotectedthrowbreakelseinstanceof publicthrowsbyteextendintreturntransientcas

23、efalseinterfaceshorttruecatchfinallongstatictrycharfianllynativestrictfpvoidclassfloatnewsupervolatilecontinuefornullswitchwhiledefaultif package synchronizedenum35JAVA程序设计语言基础程序设计语言基础(2)分隔符分隔符1、注释、注释在java语言中,可以采用三种注释方式:单行注释,形式为:/注释内容多行注释,形式为:/*注释内容*/文档注释,形式为:/*注释内容*/,这是java所特有的一种注释,是为支持javadoc而设计的。

24、36JAVA程序设计语言基础程序设计语言基础(2)分隔符分隔符2、空白符、空白符包括空格符、回车符、制表符3、普通分隔符、普通分隔符 具有明确的语法含义,要按照语法规定去使用。大括号( ):用于定义类体、方法体、复合语句分号(;):添加在功能语句之后逗号(,):用于分隔变量声明时的各个变量和方法的各个参数等冒号(:):用于标号和语句之间37JAVA程序设计语言基础程序设计语言基础(2)基本数据类型基本数据类型数据类型是程序设计语言中的基本概念,它包括两部分,取值范围(不同类型的数据在计算机中所占用的内存空间大小不同)和在这些值上所允许的操作,定义一个类型就限定了这两部分。38JAVA程序设计语

25、言基础程序设计语言基础(2)基本数据类型基本数据类型数据类型基本数据类型引用数据类型数值型字符型(char)布尔型(boolean)整数类型(byte, short, int, long)浮点类型(float, double)类(class)接口(interface)数组39JAVA程序设计语言基础程序设计语言基础(2)基本数据类型基本数据类型类型类型内存内存(bit)(bit)取值范围取值范围运算运算整整 型型 bytebyte8 8 -128-127-32768-32767-32768-32767-231231-1-263263-1+, -, *, +, -, *, /, %, +, /,

26、 %, +, -, +=, -, +=, shortshort1616intint3232longlong6464浮点型浮点型 floatfloat32 32 doubledouble6464布尔型布尔型 booleanboolean 8 8&, |, &, |, !,!,字符型字符型 charchar1616任意字符任意字符+ +(连接)(连接)-3.4E38-3.4E38-1.7E308-1.7E308true或false40JAVA程序设计语言基础程序设计语言基础(2)变量变量/ /数据类型数据类型在在JavaJava语言中语言中, ,变量按下列方式定义变量按下列方式定义变量之间用逗变量

27、之间用逗号号 ,隔开隔开语句的最后是语句的最后是一个分号一个分号 ;1. 1. 变量的类型变量的类型 变量名称;变量名称;2. 2. 变量的类型变量的类型 变量名称变量名称1,1,变量名称变量名称2,2,;3. 3. 变量的类型变量的类型 变量名称变量名称 变量的值;变量的值;41JAVA程序设计语言基础程序设计语言基础(2)变量变量/ /数据类型数据类型变量定义的例子变量定义的例子int number;int number;int number1, number2=5, number3;int number1, number2=5, number3;float pi;float pi;flo

28、at PI = 3.1416f;float PI = 3.1416f;声明了一个声明了一个3232位的整位的整型变量型变量numbernumber声明了一个声明了一个单精度单精度的浮点型变的浮点型变量量, ,并且给它赋了值并且给它赋了值注意注意: :给给floatfloat型的变量型的变量赋值时赋值时, ,值的后面要写值的后面要写一个一个f f或者或者F F42JAVA程序设计语言基础程序设计语言基础(2)变量变量/ /数据类型数据类型更多变量定义的例子更多变量定义的例子long number;long number;long cont=1357924680L;long cont=135792

29、4680L;声明了一个声明了一个6464位的长整位的长整型变量型变量numbernumber声明了一个声明了一个长整型长整型变量变量, ,并且给并且给它赋了值它赋了值注意注意: :给给longlong型的变型的变量赋值时量赋值时, ,值的后面值的后面要写一个要写一个l l 或者或者L L43JAVA程序设计语言基础程序设计语言基础(2)变量变量/ /数据类型数据类型更多变量定义的例子更多变量定义的例子double db;double db;double max = 1357924680d;double max = 1357924680d;声明了一个声明了一个双精度双精度的浮的浮点型变量点型变量

30、dbdb声明了一个声明了一个双精度双精度的浮点型变的浮点型变量量, ,并且给它赋了值并且给它赋了值注意注意: :给给doubledouble型的变量赋值时型的变量赋值时, ,值的后面值的后面可以写一个可以写一个d d 或者或者D,D,也可以什么都不写也可以什么都不写44JAVA程序设计语言基础程序设计语言基础(2)变量变量/ /数据类型数据类型更多变量定义的例子更多变量定义的例子boolean tf;boolean tf;tf = false;tf = false;声明了一个声明了一个布尔型布尔型变量变量tftf给给tftf赋了赋了值值注意注意: :booleanboolean型的变量只有型的

31、变量只有truetrue和和falsefalse这两个值这两个值45JAVA程序设计语言基础程序设计语言基础(2)变量变量/ /数据类型数据类型更多变量定义的例子更多变量定义的例子char c;char c;c = A;c = A;声明了声明了一个一个字符型字符型变量变量c c给给字符型字符型变量变量c c赋值赋值AA注意注意: :给给charchar型的变量赋值时型的变量赋值时, ,值要用值要用单引号单引号括起来括起来46JAVA程序设计语言基础程序设计语言基础(2)变量变量/ /数据类型数据类型更多变量定义的例子更多变量定义的例子对于整型数而言对于整型数而言, ,除了可以给它赋值一个除了可

32、以给它赋值一个1010进制的数进制的数, ,还还可以使用可以使用8 8进制和进制和1616进制的数进制的数声明一个声明一个短整型短整型变量变量, ,并且给它赋个并且给它赋个8 8进制进制的值的值:07:07声明一个声明一个整型整型变量变量, ,并且给它赋个并且给它赋个1616进制进制的值的值:2B:2B8 8进制的数以进制的数以0 0开开头头,16,16进制数以进制数以0x0x或或0X0X开头开头short st = 07;short st = 07;int n = 0X2B;int n = 0X2B;47JAVA程序设计语言基础程序设计语言基础(2)变量变量/ /数据类型数据类型还有一种数据

33、类型叫字符串还有一种数据类型叫字符串,String,String声明了一个字符串声明了一个字符串s1s1声明了一个字符串声明了一个字符串s2,s2,并且并且给它赋了值给它赋了值String s1;String s1;String s2 = “Hello World!”;String s2 = “Hello World!”;字符串不属于基本数据类型字符串不属于基本数据类型, ,但在声明或者定义一个字符但在声明或者定义一个字符串的时候串的时候, ,可以象声明一个基本数据类型的变量那样做。可以象声明一个基本数据类型的变量那样做。48JAVA程序设计语言基础程序设计语言基础(2)变量变量没有声明变量就

34、使用是错误的,重复定义变量也是错误的。变量在赋值后才能使用。变量的作用域:指变量的有效作用范围。一个变量的作用域是从它的声明处开始,到它所在的程序块(block)结束。程序块是指由界定符号“ ”确定的程序段。例如一个类体,一个方法体。49JAVA程序设计语言基础程序设计语言基础(2)变量的作用域变量的作用域- -实例实例class examplestatic int n1=9;public static void display()int n2=200;n1=n1+n2;System.out.println(n1=+n1);System.out.println(n2=+n2);public s

35、tatic void main(String args)int n3;n3=n1+2;System.out.println(n1=+n1);System.out.println(n3=+n3);System.out.println();display();50JAVA程序设计语言基础程序设计语言基础(2)练习:基本数据类型的使用练习:基本数据类型的使用(1 1)下面代码的输出结果是什么?下面代码的输出结果是什么?下面代码的输出结果是什么?下面代码的输出结果是什么?int i=10;int i=10;System.out.println(i);System.out.println(i);i=15

36、;i=15;System.out.println(i);System.out.println(i);输出结果输出结果:1010151551JAVA程序设计语言基础程序设计语言基础(2)练习:基本数据类型的使用练习:基本数据类型的使用(2 2)int i;int i;System.out.println(i);System.out.println(i);int i=15;int i=15;System.out.println(i);System.out.println(i);错误错误2 2:重复定义变量:重复定义变量i i。错误错误1 1:在给变量:在给变量i i赋值前使用它。赋值前使用它。下面

37、代码中的两个错误是什么?52JAVA程序设计语言基础程序设计语言基础(2)练习:基本数据类型的使用练习:基本数据类型的使用(3 3)没有任何错误没有任何错误。 x x先被赋予值先被赋予值15.015.0,然后,然后x x被给定一个新的值被给定一个新的值150.0150.0。下面的代码中有错吗?下面的代码中有错吗?double x=15.0;double x=15.0;x = x * 10;x = x * 10;System.out.println(x);System.out.println(x); 53JAVA程序设计语言基础程序设计语言基础(2)练习:基本数据类型的使用练习:基本数据类型的使

38、用(4 4)假假设设有有两两个个intint型型变变量量oneone和和twotwo,编编写写代代码码交交换它们的值。换它们的值。int one= 10;int two = 20;System.out.println(one);System.out.println(two);int temp=two;two= one;One=temp;System.out.println(one);System.out.println(two);54JAVA程序设计语言基础程序设计语言基础(2)常常 量量常量(constant)是指在程序运行中其值一直保持不变且不能被改变的量。常量初始化之后就不能再改变它的值

39、常量使用final关键字来定义如:final float PI=3.1415926f; final byte MAX=127; final boolean sex=true; final char a=a; final string s=“您好啊!”;(字符串常量)55JAVA程序设计语言基础程序设计语言基础(2)常常 量量 所有的基本数据类型都可定义常量常用的转义字符常量r表示接受键盘输入,相当于按下了回车键;n是换行;t是制表符,相当于table键;b是退格键,相当于Back Space;是单引号,而“是双引号;是一个斜杠“”。56JAVA程序设计语言基础程序设计语言基础(2)数据类型间的

40、转换数据类型间的转换类型的转换通常是在一个运算式中参加运算的各个变量的类型不一致,或者要给某种类型的变量赋一个不同类型的值时发生类型转换分为类型转换分为:自动转换自动转换(隐式隐式)和和强制转换强制转换(显式显式/casting)57JAVA程序设计语言基础程序设计语言基础(2)数据类型间的转换数据类型间的转换自动转换:两种类型是兼容的;目的数据类型的取值范围比来源数据类型的取值范围要大。double byteshort int longchar float 58JAVA程序设计语言基础程序设计语言基础(2)数据类型间的转换数据类型间的转换强制转换强制转换:目的数据类型的取值范围比来源数据类型

41、的取值范围要小。如当需要将int型的值赋给一个byte型的变量时该怎么办?当把一个浮点值赋给整数类型时,将发生一种不同的类型转换:截断。大家都知道整数没有小数部分。这样,当把浮点值赋给整数类型时,它的小数部分将会被舍去。例如,如果将值1.23赋给一个整数,其结果只是1,0.23被舍弃。当然,如果浮点值太大而不能适合目标整数类型,那么它的值将会因为对目标类型值域取模而减少。慎用强制类型转换。 59JAVA程序设计语言基础程序设计语言基础(2)表达式中类型的自动提升表达式中类型的自动提升 除了赋值方式,类型变换还可以在表达式中进行。在表除了赋值方式,类型变换还可以在表达式中进行。在表达式中,对中间

42、值的精确要求有时超过任何一个操作数达式中,对中间值的精确要求有时超过任何一个操作数的范围。例如,考察下面的表达式。的范围。例如,考察下面的表达式。byte a = 40;byte b = 50;byte c = 100;int d = a * b / c; 中间项结果中间项结果a*b很容易超过它的任何一个很容易超过它的任何一个byte型操作数型操作数的范围。为处理这种问题,当分析表达式时,的范围。为处理这种问题,当分析表达式时,Java自动自动提升各个提升各个byte型或型或short型的操作数到型的操作数到int型。这意味着子型。这意味着子表达式表达式a*b使用整数而不是字节型来执行。这样,

43、尽管变使用整数而不是字节型来执行。这样,尽管变量量a和和b都被指定为都被指定为byte型,型,50*40中间表达式的结果中间表达式的结果2000是合法的。是合法的。60JAVA程序设计语言基础程序设计语言基础(2)表达式中类型的自动提升表达式中类型的自动提升自动类型提升有好处,但它也会引起令人疑惑的编译错误。自动类型提升有好处,但它也会引起令人疑惑的编译错误。例如,下面这个看起来正确的程序却会引起一些问题。例如,下面这个看起来正确的程序却会引起一些问题。byte b = 50;b = b * 2; / Error! Cannot assign an int to a byte! 该程序试图将一

44、个完全合法的该程序试图将一个完全合法的byte型的值型的值50*2再存储给一个再存储给一个byte型的变型的变量。但是,当表达式求值的时候,操作数被自动地提升为量。但是,当表达式求值的时候,操作数被自动地提升为int型,计算结型,计算结果也被提升为果也被提升为int型。这样,表达式的结果现在是型。这样,表达式的结果现在是int型,不强制转换它就型,不强制转换它就不能被赋为不能被赋为byte型。型。 在理解了上述溢出后果的情况下,就知道应该使用一个显式的强制类型转在理解了上述溢出后果的情况下,就知道应该使用一个显式的强制类型转换。换。 byte b = 50; b = (byte)(b * 2)

45、; 这样将产生正确的结果这样将产生正确的结果100。 61JAVA程序设计语言基础程序设计语言基础(2)关于类型提升的若干约定关于类型提升的若干约定 除除了了将将byte型型和和shorts型型提提升升到到int型型以以外外,Java语语言言还还规规定定了了若若干干适适用用于于表表达达式式的的类类型型提提升升规规则则。首首先先,如如前前面面所所描描述述的的,所所有有的的byte型型和和short型型的的值值被被提提升升到到 int型型。其其次次,如如果果一一个个操操作作数数是是long型型,整整个个表表达达式式将将被被提提升升到到long型型;如如果果一一个个操操作作数数是是float型型,整

46、整个个表表达达式式将将被被提提升升到到float型型;如如果果有有一一个个操操作作数数是是double型型,计计算算结结果果就是就是double型。型。62JAVA程序设计语言基础程序设计语言基础(2)例子例子例如,下面的程序显示了在表达式中的每个值是如何被例如,下面的程序显示了在表达式中的每个值是如何被提升的,以匹配各自双目运算符的第二个参数。提升的,以匹配各自双目运算符的第二个参数。class Promote public static void main(String args) byte b = 42;char c = a;short s = 1024;int i = 50000;fl

47、oat f = 5.67f;double d = .1234;double result = (f * b) + (i / c) - (d * s);System.out.println(f * b) + + + (i / c) + - + (d * s);System.out.println(result = + result);63JAVA程序设计语言基础程序设计语言基础(2)赋值语句赋值语句前面在讲变量的定义时我们已经多次使用了赋值语句前面在讲变量的定义时我们已经多次使用了赋值语句, ,它的一般格式如下它的一般格式如下1.1.被赋值的变量被赋值的变量 = = 数值数值; ;2.2.被赋值

48、的变量被赋值的变量 = = 用来赋值的变量用来赋值的变量; ;3.3.被赋值的变量被赋值的变量 = = 表达式表达式; ;= 称为赋值运算符称为赋值运算符float f = 1.234F;float f = 1.234F;float alf = f;float alf = f;String s = “Hello” + “ Java”;String s = “Hello” + “ Java”;64JAVA程序设计语言基础程序设计语言基础(2)赋值语句赋值语句更多的赋值语句更多的赋值语句除了前面用到的除了前面用到的算术表达式算术表达式以外以外, ,还有还有逻辑表达逻辑表达式式boolean b =

49、 32;boolean b = 32;在这个赋值语句里在这个赋值语句里, ,最终最终b b的值是什么呢的值是什么呢? ?答案:答案:falsefalse65JAVA程序设计语言基础程序设计语言基础(2)运算符运算符在Java语言中,运算符可以划分为四大类:算术运算符、关系运算符、位运算符以及逻辑运算符。此外还定义了一些附加运算符,用于某些特殊情况的处理。66JAVA程序设计语言基础程序设计语言基础(2)算术运算符算术运算符运算符运算符运算符运算符用法用法用法用法描述描述描述描述双双双双目目目目运运运运算算算算符符符符+ +Op1+op2Op1+op2加加加加- -Op1-op2Op1-op2减

50、减减减* *Op1*op2Op1*op2乘乘乘乘/ /Op1/op2Op1/op2除除除除%op1%op2op1%op2取模(求余)取模(求余)取模(求余)取模(求余)单单单单目目目目运运运运算算算算符符符符+ +op+op正值正值正值正值+op+op,op+op+加加加加1 1- -op-op负值负值负值负值- -op-op,op-op-减减减减1 167JAVA程序设计语言基础程序设计语言基础(2)算术运算符算术运算符i+与与+i的区别的区别:i+在使用在使用i之后,使之后,使i的值加的值加1,因此执行完,因此执行完i+后,整个表达式的值为后,整个表达式的值为i,而,而i的值变为的值变为i

51、+1。+i在使用在使用i之前,使之前,使i的值加的值加1,因此执行完,因此执行完+i后,整个表达式和后,整个表达式和i的值均为的值均为i+1。如:如:a=2;b=a+;运行后:运行后:a=3;b=2; a=2;b=+a;运行后:运行后:a=3;b=3;i-与与-i的区别(与上面类似)的区别(与上面类似)68JAVA程序设计语言基础程序设计语言基础(2)算术运算符算术运算符“+”除字符串相加功能外,还能把非字符串转换成字符串 ,如: “x”+123;的结果是“x123” 。x+123的结果是什么呢? 如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。但被模数是负数就另当别论了。对于除号“

52、/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。 int x=3510;x=x/1000*1000;实际运行结果是3000 ,想想为什么?69JAVA程序设计语言基础程序设计语言基础(2)算术运算符使用技巧算术运算符使用技巧思考题1:某个培训中心要为新到的学员安排房间,假设共有x个学员,每个房间可以住6人,让你用一个公式来计算他们要住的房间数?答案:(x+5)/6。这种算法还可用在查看留言板的分页显示上: 其中x是总共的留言数,6是每页显示的留言数,结果就是总共有多少页。思考题2:假设你要让x的值在0至9之间循环变化,请写出相应的程序代码。答案:int x=

53、0;while(true)x = (x+1)%10;70JAVA程序设计语言基础程序设计语言基础(2) 加运算符可以用来连接两个字符串加运算符可以用来连接两个字符串例如,例如,”abc”+123abc”+123的运行结果是字符串的运行结果是字符串abc123abc123“abc”+(1+2)abc”+(1+2)的运行结果是什么的运行结果是什么?abc3 两个整数相除的结果取其整数部分两个整数相除的结果取其整数部分例如,例如,3/23/2的结果是的结果是1 1,而不是,而不是1.51.5 1/2 1/2的结果是的结果是0 08/15*158/15*15的结果是多少?的结果是多少?0算数运算符的使

54、用算数运算符的使用71JAVA程序设计语言基础程序设计语言基础(2) JavaJava语言既可以对整数取模,也可以对小语言既可以对整数取模,也可以对小数取模数取模如:如:20%7=620%7=6,16.2%5=1.216.2%5=1.2 可以对可以对charchar类型的数据进行运算,因为其可类型的数据进行运算,因为其可以自动转换为整型或浮点型以自动转换为整型或浮点型如:如:a/3=32a/3=32;a%5=2a%5=2算数运算符的使用算数运算符的使用72JAVA程序设计语言基础程序设计语言基础(2) 单目运算符单目运算符 正值正值(+)(+),负值,负值(-)(-)如:如:+5+5, -5-

55、5 加加1(+)1(+),减,减1(-)1(-)运算符的操作数必须是变量,不能是常量或运算符的操作数必须是变量,不能是常量或带有运算符的表达式,可以把运算符放在操带有运算符的表达式,可以把运算符放在操作数的前面或后面作数的前面或后面如:如:+a+a和和a+a+ -a和和a-算数运算符的使用算数运算符的使用73JAVA程序设计语言基础程序设计语言基础(2)说明:说明: +a+a先对先对a a增增1 1,然后用增,然后用增1 1后的值进行计算后的值进行计算 a+a+先用先用a a的值参加计算,然后对的值参加计算,然后对a a增增1 1例例:int a=5,b=8,c,d;int a=5,b=8,c

56、,d; c=(a+)*b; c=(a+)*b; /c=40,a=6/c=40,a=6 d=(+a)*b d=(+a)*b /d=48,a=6/d=48,a=6算数运算符的使用算数运算符的使用74JAVA程序设计语言基础程序设计语言基础(2)同样同样: -a-a先对先对a a减减1 1,然后用减,然后用减1 1后的值进行计算后的值进行计算 a-a-先用先用a a的值参加计算,然后对的值参加计算,然后对a a减减1 1例例:int a=5,b=8,c,d;int a=5,b=8,c,d; c=(a-)*b; c=(a-)*b; /c=40 ,a=4/c=40 ,a=4 d=(-a)*b d=(-a

57、)*b /d=32 ,a=4/d=32 ,a=4算数运算符的使用算数运算符的使用75JAVA程序设计语言基础程序设计语言基础(2)赋值运算符赋值运算符注1:在JAVA里可以把赋值语句连在一起,如: x = y = z = 5 ; 在这个语句中,所有三个变量都得到同样的值5。注2 :x += 3等效于x = x + 3,等于*= ,-=,/=依此类推。 76JAVA程序设计语言基础程序设计语言基础(2)关系运算符关系运算符注1:比较运算符的结果都是boolean型,也就是要么是true,要么是false。注2:比较运算符“= =”不能误写成“=” ,切记!切记!577JAVA程序设计语言基础程序

58、设计语言基础(2)逻辑运算符逻辑运算符注1:逻辑运算符用于对boolean型结果的表达式进行运算,运算的结果都是boolean型 。注2:“&”和“&”的区别在于,如果使用前者连接,那么无论任何情况,“&”两边的表达式都会参与计算。如果使用后者连接,当“&”的左边为false,则将不会计算其右边的表达式。“|”和“|”的区别与“&”和“&”的区别类似。78JAVA程序设计语言基础程序设计语言基础(2)“&”“&”和和“&”“&”的区别分析的区别分析public class TestAnd public static void main(String args) int x=0; int y=3

59、; if(x!=0 & y=y/x) System.out.println(y = +y); 上面例子中,由于while语句的判断条件中的第一个布尔表达式是不成立的,程序就不会判断第二个布尔表达式的值,这就是“短路”。如果两个表达式之间用“&”来连接,如果正好碰到上面所示的特殊情况,程序运行时就会出错 79JAVA程序设计语言基础程序设计语言基础(2)逻辑运算符逻辑运算符1、a,b,c三条边能否组成三角形的条件a+bc&a+cb&b+ca2、判断year是否是闰年的条件1)能被4整除,但不能被100整除; 2)能被4整除,又能被400整除。(year%4=0&year%100!=0) |(ye

60、ar%400=0)80JAVA程序设计语言基础程序设计语言基础(2)三目条件运算符三目条件运算符 ? : ? :条件运算符也称三目运算符,其格式为:Expression? statement1 : statement2;它的作用是根据第一个运算符(放在?前面,必须为布尔类型数据)的真假值,来决定整个表达式的结果值是第二个运算量(放在?后面 :前面)或者是第三个运算量(放在:后面)。 如:int x,y=10,z=43; x=yz?y:z; 运行后 x=43.即当yz时,x=y;否则x=z.81JAVA程序设计语言基础程序设计语言基础(2)运算符的优先级运算符的优先级我们可以使用括号改变运算赋的

61、优先级,分析int a =2;int b = a + 3*a;语句的执行过程 与int a =2;int b =( a + 3)*a;语句的执行过程的区别 。82JAVA程序设计语言基础程序设计语言基础(2)如何避免多个运算符带来的问题如何避免多个运算符带来的问题对于int a =2; int b= a + 3 * a+;这样的语句,b最终等于多少呢?试验得到的结果是8。对于int a =2; int b= (a +)+ 3 * a;这样的语句,b最终等于多少呢?试验得到的结果是11。83JAVA程序设计语言基础程序设计语言基础(2)如何避免多个运算符带来的问题如何避免多个运算符带来的问题与其

62、去思考其中的原因,我们还不如将上面的第二句改为几条语句来实现我们想要的结果。不要在一行中编写太复杂的表达式,也就是不要在一行中进行太多的运算在一行中进行太多的运算并不能为你带来什么好处,相反只能带来坏处,它并不比改成几条语句的运行速度快,它除可读行差外,还极容易出错。对于优先级顺序,不用刻意去记,有个印象就行。如果你实在弄不清这些运算先后关系的话,就用括号或是分成多条语句来完成你想要的功能,因为括号的优先级是最高的,这也是软件编码规范的一个要求。84JAVA程序设计语言基础程序设计语言基础(2)输入输出输入输出JAVA没有提供专用的输入/输出命令或语句,它的输入/输出是靠系统提供的输入/输出类

63、的方法实现的。输出System.out.println( ):该方法可以有0或1个参数System.out.print( ):该方法必须有1个参数参数类型可以是char、byte 、int 、boolean 、float 、double 、String和Object(对象)类型,这些类型的数据在转换成相应的字符串后输出。85JAVA程序设计语言基础程序设计语言基础(2)输入输入System.in.read( )用于从键盘上输入一个字符,按照int数据处理,若转换为字符型就是字符本身,若转换为整型,它是字符的扩展ASCII码值(0255)。注意:进行输入时要引入java.io包,并且使用异常处理

64、机制。实例:bytein.java86JAVA程序设计语言基础程序设计语言基础(2)输入输入使用字符串缓冲BufferedReaderimport java.io.*;class stringinpublic static void main(String args) throws IOExceptionString s; System.out.println(please input a string:);BufferedReader br=new BufferedReader(new InputStreamReader(System.in);/创建字符串缓冲区对象br,用于接收输入的字符串

65、s=br.readLine();/调用读入字符串的方法System.out.println(“the string you input is+s);87JAVA程序设计语言基础程序设计语言基础(2)输入输入图形界面下的输入/输出方法JOptionPane.showInputDialog(“提示信息”);JOptionPane.showInputDialog(“提示信息”,初值);JOptionPane.showMessageDialog(框架,输出内容);JOptionPane.showMessageDialog(框架,输出内容,标题,信息类型);88JAVA程序设计语言基础程序设计语言基础(

66、2)第第2 2章章 JavaJava程序设计语言基础程序设计语言基础Java开发环境Java语言基础控制结构89JAVA程序设计语言基础程序设计语言基础(2)控制结构控制结构语句和块分支(选择)结构if、ifelse、switch循环结构while、for、dowhile跳转语句break、continue、return90JAVA程序设计语言基础程序设计语言基础(2)JAVAJAVA语言的三种基本控制结构语言的三种基本控制结构91JAVA程序设计语言基础程序设计语言基础(2)语句语句程序中的语句可以分为两种类型:简单语句和流程控制语句。Java中常用的有下面几类语句:声明语句,如:char

67、a=A;表达式语句,如:i+; System.out.println(“Hello”)分支语句,如: ifelse、switch循环语句,如: while、dowhile 、 for跳转语句,如:break、continue异常语句,如:try-catch-finally空语句,如: ;92JAVA程序设计语言基础程序设计语言基础(2)块块块是用一对块是用一对“ ”将零个或多个语句括起来,就构成一个块(也称复合将零个或多个语句括起来,就构成一个块(也称复合语句)。语句)。程序中的类体及方法体也都是块。程序中的类体及方法体也都是块。class UseBlockpublic static void

68、 main(String args)int a=5;a+=8;int b=6;b=b+a;System.out.println(a+ +b); System.out.println(a+ +b);结合前面所学知识(变量的作用域),上面的程序有错误吗?93JAVA程序设计语言基础程序设计语言基础(2)分支结构分支结构if单选结构if(布尔表达式)语句块;可以是一条或多条语句,在只有一条语 句的情况下,可以不用“ ”如:学生的成绩studentGrade=60分,则输出“成绩及格了”if(studentGrade=60)System.out.println(“成绩及格了”);94JAVA程序设计语

69、言基础程序设计语言基础(2)分支结构分支结构实例:求两个数的最大值。(使用单分支结构)int n1=45326,n2=54321,max;max=n1;if(n2=n1)max=n2; System.out.println(“max=”+max);95JAVA程序设计语言基础程序设计语言基础(2)分支结构分支结构if-elseif(布尔表达式)语句块1;可以是一条或多条语句,在只有一条语句 的情况下,可以不用“ ”else语句块2;96JAVA程序设计语言基础程序设计语言基础(2)分支结构分支结构如:学生的成绩studentGrade=60分,则输出“恭喜!成绩及格了”,否则输出“遗憾!成绩不

70、及格”if(studentGrade=60) System.out.println(“恭喜!”); System.out.println(“成绩及格了”);else System.out.println(“遗憾!”); System.out.println(“成绩不及格”);97JAVA程序设计语言基础程序设计语言基础(2)分支结构分支结构实例:求两个数的最大值。(使用双分支结构)int n1=45326,n2=54321,max;if(n1=n2)max=n1; elsemax=n2;System.out.println(“max=”+max);98JAVA程序设计语言基础程序设计语言基础(

71、2)分支结构分支结构嵌套的if-else结构if(布尔表达式布尔表达式1) 语句块语句块1;else if(布尔表达式布尔表达式2) 语句块语句块2;else if(布尔表达式布尔表达式N) 语句块语句块N;else 语句块语句块Else;99JAVA程序设计语言基础程序设计语言基础(2)分支结构分支结构如:学生的成绩studentGrade=90分,则输出等级“A”, studentGrade=80分,则输出等级“B”, studentGrade=70分,则输出等级“C”, studentGrade=60分,则输出等级“D”, 其他成绩,则输出等级“F”。 if(studentGrade=9

72、0) System.out.println(“A”);else if(studentGrade=80) System.out.println(“B”);else if(studentGrade=70) System.out.println(“C”);else if(studentGrade=60) System.out.println(“D”);else System.out.println(“F”);100JAVA程序设计语言基础程序设计语言基础(2)分支结构分支结构switch多分支结构switch ( 表达式)case 值1 : statements1; break;case value

73、N : statementsN; break;default : defaultStatements; 将括号里“表表达达式式”的值同每种情况列出的值做比较,若相等就执行后面的语句;若不等,就执行default语句。 注意:“表达式”必须为byte、short、 int或 char类 型 。 每 个case语句后的值必须是与表达式类型兼容的特定的一个常量(它必须为一个常量,而不是变量),重复的case值是不允许的。通常在每一种case情况后都应使用break语句。否则,第一个相等情况后面所有的语句都会被执行,这种情况被称为落空。101JAVA程序设计语言基础程序设计语言基础(2)分支结构分支结

74、构实例1:根据考试等级( “A” 表示90分以上,“B”表示8089分, “C”表示7079分, “D”表示6069分,“E”表示60分以下)输出百分制分数段。实例2:输入一个月份,判断是属于一年中的哪个季节(春、夏、秋、冬)102JAVA程序设计语言基础程序设计语言基础(2)循环结构循环结构循环结构是在满足一定条件下反复执行某段程序的流程结构,一个循环一般包括四个部分:循环的初始化:用来设置循环的一些初始条件。循环条件:一般为布尔表达式循环体:重复执行的一段程序,可以是一个语句,也可以是一个语句块迭代部分:在本次循环结束,下一次循环开始前执行的是循环变量递变的语句。常用的形式为一个计数器递增

75、或递减。103JAVA程序设计语言基础程序设计语言基础(2)循环结构循环结构while语句(P96)while(条件表达式)循环体;注意(1)没有在循环体中提供使条件表达式最终变为假的语句,这种循环就永远不会终止,称为“死循环”(2)该循环体最少执行多少次?104JAVA程序设计语言基础程序设计语言基础(2)循环结构循环结构实例:计算1+2+3+100int i=1,sum=0;while(i=100)sum=sum+i;i+;System.out.println(“1+2+3+100=”+sum);105JAVA程序设计语言基础程序设计语言基础(2)循环结构循环结构实例:用while循环语句

76、计算:1!+2!+3!+10!int i=1,p=1,sum=0;while(i=10)p=p*i;sum=sum+p;i+;System.out.println(“1!+2!+3!+10!=”+sum);106JAVA程序设计语言基础程序设计语言基础(2)循环结构循环结构do-while语句(P133)do循环体;while(条件表达式);注意(1) while(条件表达式)后有“;” (2)该循环体至少被执行1次,这是和while的最大区别。故一般称while循环为“当型”循环(先判断后执行); do-while循环为“直到型”循环(先执行后判断)。107JAVA程序设计语言基础程序设计语

77、言基础(2)循环结构循环结构实例:将键盘输入的数据累加求和,直到输入0为止。BufferedReader br=new BufferedReader(new InputStreamReader(System.in);String s;int i,sum=0;System.out.println(plaese input a number,input 0 to stop);dos=br.readLine();i=Integer.parseInt(s);sum=sum+i;System.out.println(the sum is:+sum);while(i!=0);108JAVA程序设计语言基础

78、程序设计语言基础(2)循环结构循环结构for语句(P126) for(初始化;循环继续条件;增量)语句;For结构应用举例(课本P129)注意: for语句中的循环变量在for结构头的初始化部分定义时,在此结构外使用该循环变量是一个语法错误。109JAVA程序设计语言基础程序设计语言基础(2)循环结构循环结构实例:计算1+2+3+100 计算1!+2!+3!+10! 计算2+4+6+100110JAVA程序设计语言基础程序设计语言基础(2)循环结构循环结构【例】求1000之内的所有水仙花数。所谓水仙花数,是指一个三位数,它的各位数字的立方和等于这个数本身。(如:371) 程序分析: 用for循

79、环每一次循环检查100到999中的一个三位数n,取出n的个位、十位和百位分别存入k,j,i三个整形变量中。然后利用系统定义好的方法Math.pow()计算i,j,k的三次方并相加,若得到的和等于n,则输出这个水仙花数,否则n加1进入下一次循化。循环结束时将得到所有的水仙花数。其中用m计算水仙花数的当前找到个数。111JAVA程序设计语言基础程序设计语言基础(2)循环结构循环结构public class Narcissus public static void main(String args) int i,j,k,m=1; for (int n=100;n1000;n+) i=n/100; j

80、=(n-i*100)/10; k=n%10; if (Math.pow(i,3)+Math.pow(j,3)+Math.pow(k,3)=n) System.out.println(找到第找到第+m+水仙花数:水仙花数:+n); 112JAVA程序设计语言基础程序设计语言基础(2)循环结构循环结构下列程序的输出结果是什么?class TuXing public static void main(String args) for(int i=1;i=5;i+) for(int j=1;j=5-i;j+) System.out.print( ); for(int k=1;k=2*i-1;k+) S

81、ystem.out.print(*); System.out.println(); 113JAVA程序设计语言基础程序设计语言基础(2)循环结构循环结构【例例】求求3200之间的所有素数。素数是只能被之间的所有素数。素数是只能被1和该数本身整除的数。和该数本身整除的数。public class PrimeNumber public static void main(String args ) System.out.println(*3到到200之间的所有素数之间的所有素数*); int n=0; for(int i=3;i=200;i+=2) int k=(int)Math.sqrt(i);

82、boolean isPrime=true; for(int j=2;j=k;j+) if(i%j=0) isPrime=false; if(isPrime) System.out.print( +i); n+; if(n%10=0) System.out.println(); 114JAVA程序设计语言基础程序设计语言基础(2)三种循环语句的比较:三种循环都可以用来处理同一个问题,一般可以相互替代。while和do-while循环的循环体中应包括使循环趋于结束的语句。for语句功能更强大。用while和do-while循环时,循环变量初始化操作应在while和do-while语句之前完成,而f

83、or语句可以在表达式1中实现循环变量的初始化。当循环次数明确时,用for、while比较方便;当不肯定时就用while或do-while。 115JAVA程序设计语言基础程序设计语言基础(2)breakbreak在前面的switch结构中,break语句终止switch结构体语句的执行,跳到switch结构后面的语句执行。同样,在循环结构中,break语句结束循环语句的执行(提前结束),跳到循环结构后面的语句执行。116JAVA程序设计语言基础程序设计语言基础(2)breakbreak如求200300之间的所有素数并输出。(PrimeNumber2.java) System.out.print

84、ln(*200-300*); int i,j; for(i=200;i=300;i+=1) for(j=2;ji-1) System.out.print( +i); 117JAVA程序设计语言基础程序设计语言基础(2)带标号的带标号的breakbreak带标号的break语句从标号所标记的语句块中跳出来,直接执行标号语句块后面的语句。注意:break语句必须包含在标号所标记的语句块内标号名可以是任何合法的标识符118JAVA程序设计语言基础程序设计语言基础(2)带标号的带标号的break break BreakDemo.javaboolean b=true;first: second: thi

85、rd: System.out.println(1); if(b) break second; System.out.println(2); System.out.println(3); System.out.println(4); 119JAVA程序设计语言基础程序设计语言基础(2)continuecontinuecontinue语句只用在for、while、do-while循环体中,它的功能是:使得程序跳过循环体中continue语句后剩下的部分,终止当前这一次循环的执行,直接进行下一次循环条件的判断。120JAVA程序设计语言基础程序设计语言基础(2)continuecontinue如使用

86、不带标号的continue语句和循环语句,求出1100之间的所有奇数的和。(JiShuHe.java) int sum=0;for(int i=1;i=100;i+)if(i%2=0)continue;sum=sum+i;System.out.println(sum);121JAVA程序设计语言基础程序设计语言基础(2)continuecontinue int i=1,sum=0;while(i=100)if(i%2=0)continue;sum=sum+i;i+;System.out.println(sum);122JAVA程序设计语言基础程序设计语言基础(2)带标号的带标号的continu

87、econtinue带标号的continue的功能:无条件地使流程转移到带标号的循环语句的下一次循环条件判定部分。123JAVA程序设计语言基础程序设计语言基础(2)带标号的带标号的continuecontinue ContinueLabel.java outer:for(int i=0;i10;i+)for(int j=1;ji)System.out.println();continue outer;System.out.print(i*j)+ );System.out.println();124JAVA程序设计语言基础程序设计语言基础(2)第第2 2周作业周作业1、完成课本上实例的实习2、复习本章、预习下章125JAVA程序设计语言基础程序设计语言基础(2)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号