Java程序案例教程 教学课件 ppt 作者 高职 田智 第1-5章_ 第3章

上传人:E**** 文档编号:89346806 上传时间:2019-05-23 格式:PPT 页数:181 大小:2.93MB
返回 下载 相关 举报
Java程序案例教程 教学课件 ppt 作者 高职 田智 第1-5章_ 第3章_第1页
第1页 / 共181页
Java程序案例教程 教学课件 ppt 作者 高职 田智 第1-5章_ 第3章_第2页
第2页 / 共181页
Java程序案例教程 教学课件 ppt 作者 高职 田智 第1-5章_ 第3章_第3页
第3页 / 共181页
Java程序案例教程 教学课件 ppt 作者 高职 田智 第1-5章_ 第3章_第4页
第4页 / 共181页
Java程序案例教程 教学课件 ppt 作者 高职 田智 第1-5章_ 第3章_第5页
第5页 / 共181页
点击查看更多>>
资源描述

《Java程序案例教程 教学课件 ppt 作者 高职 田智 第1-5章_ 第3章》由会员分享,可在线阅读,更多相关《Java程序案例教程 教学课件 ppt 作者 高职 田智 第1-5章_ 第3章(181页珍藏版)》请在金锄头文库上搜索。

1、第3章 Java基本程序设计,3.1 变量与数据类型 3.2 运算符、表达式与语句 3.3 循环与选择性语句,3.1 变量与数据类型 3.1.1 变量与常量 下面来看一个简单的实例,以便于读者了解Java中变量与常量之间的关系。下面的程序中声明了两种Java经常使用到的变量整型变量num与字符变量ch,为它们赋值后,再把它们的值分别显示在显示器上。 【例3-1】 TestJava3_1.java。,在TestJava 3_1中,声明了两种不同类型的变量num与ch,并分别将常量3与字符“z”赋值给这两个变量,最后再将它们显示在显示器上。 声明一个变量时,编译程序会在内存里开辟一块足以容纳此变量

2、的内存空间。不管变量的值如何改变,都永远使用相同的内存空间。因此,善用变量是一种节省内存的方式。 常量是不同于变量的一种类型,它的值是固定的,如整数常量、字符串常量。通常给变量赋值时,会将常量赋值给它。在程序TestJava 3_1中,第6行num是整型变量,而3则是常量。此行的作用是声明num为整型变量,并把常量3这个值赋给它。第7行声明了一个字符变量ch,并将字符常量z赋给它。当然,在程序进行过程中,可以为变量重新赋值,也可以使用已经声明过的变量。,3.1.2 Java的变量类型 在Java中规定了八种变量类型来存储整数、浮点数、字符和布尔值,如图3-1所示。,图3-1 Java 的变量类

3、型,3.1.3 基本数据类型 到目前为止,相信读者已经对Java有了一些初步的认识,如果想在程序中使用一个变量,就必须先声明,此时编译程序会在未使用的内存空间中寻找一块足够保存这个变量的空间以供这个变量使用。Java的基本数据类型如表3-1所示。,表3-1 Java的基本数据类型,1整数类型 当数据不带有小数或分数时,可以声明为整数变量,如3、147等为整数。Java中,整型数据类型可以分为long、int、short和byte四种。long为64位,也就是8个字节,可表示范围为 9 223 372 036 854 775 8089 223 372 036 854 775 807;int为32

4、位,也就是4个字节,表示范围为 2 147 483 6482 147 483 647;若数据值的范围为 32 76832 767,可以声明为short(短整数)类型;若数据值更小,在 128到127之间,可以声明为byte类型以节省内存空间。,1) 常量的数据类型 Java把整数常量的数据类型均视为int型,因此,如果在程序中使用了超过2 147 483 647这个大小的常量,编译时将发生错误。 【例3-2】 TestJava3_2.java。,2) 数据类型的最大值与最小值 Java提供了long、int、short及byte四种整数类型的最大值、最小值代码,以方便设计者使用,最大值的代码是

5、MAX_VALUE,最小值是MIN_VALUE。如果要取用某个类型的最大值或最小值,只要在这些代码之前加上它们所属的类的全名即可。例如,如果程序代码里需要用到长整数的最大值,则可用如图3-2所示的语法表示。,图3-2 代码的表示法,由上面的语法可知,如果要使用某个类型的代码,则必须先指定该类型所在的类库以及该类型所属的类,但因java.lang这个类库属于常用类库,所以默认的Java程序会将它加载,因此在实际的应用中设计者可以将它省略。 Java所提供的整数的最大值与最小值的标识符及常量值可在表3-2中查阅。,表3-2 整数常量的特殊值代码,3) 溢出的发生 当整数的数据大小超出了可以表示的范

6、围,而程序中又没有进行数值范围的检查时,这个整型变量所输出的值将发生紊乱,且不是预期的运行结果。在下面的例子中,声明了一个整型的数,并把它赋值为整型可以表示的范围的最大值,然后将它分别加1和加2。 【例3-4】 TestJava3_4.java。,当最大值加上1时,结果反而变成表示范围中最小的值,当最大值加上2时,结果变成表示范围中次小的值,这就是数据类型的溢出。读者可以发现,这个情形会出现一个循环,若要避免这种情况的发生,就必须在程序中加上数值范围的检查功能,或者使用较大的表示范围的数据类型,如长整型。例如,声明了一个整数i,其表示范围为2 147 483 6482 147 483 647,

7、当i的值设为最大值2 147 483 647时,它仍在整数的范围内,但是当x加1和加2时,整数x的值反而变成 -2 147 483 648和2 147 483 647,成为可表示范围的最小值及次小值。,上述情形就像计数器的内容到最大值时会自动归零一样。在整数中,最小值为2 147 483 648,所以当整数x的值最大时,加上1就会变成最小值2 147 483 648,也就是产生了溢出。可以参考图3-3来了解数据类型的溢出问题。,图3-3 数据类型的溢出,为了避免int类型的溢出,可以在该表达式中任一常量后加上大写的“L”,或是在变量前面加上long,作为强制类型的转换。例如,在下面的程序中加上

8、了防止溢出的处理。为了让读者方便比较,特地保留了一个整数的溢出语句。 【例3-5】 TestJava3_5.java。,程序说明: (1) 第6行声明int类型的整数变量x,并赋值为整数最大值,即2 147 483 647。 (2) 第7行输出x的值,即2 147 483 647。 (3) 第8行输出x + 1的值,此时溢出发生,运行结果变成 2 147 483 648。 (4) 第9行输出x + 2的值,为了避免溢出发生,在表达式的常量部分2后加上L,执行结果变成2 147 483 649。 (5) 第10行输出x + 3的值,为了避免溢出发生,在表达式的整数部分x之前加上long,执行结果

9、变成2 147 483 650。,2. 字符类型 字符类型在内存中占有2个字节,可以用来保存英文字母等字符。计算机处理字符类型时,是把这些字符当成不同的整数来看待的,因此,严格来说,字符类型也算是整数类型的一种。在计算机的世界里,所有的文字、数值都只是一连串的0与1。这些0与1对于设计者来说难以理解,于是就产生了各种方式的编码,它们指定一个数值来代表某个字符,如常用的字符码系统ASCII。虽然各类编码系统合起来有数百种之多,却没有一种包含足够的字符、标点符号及常用的专业技术符号。这些编码系统之间可能还会有相互冲突的情形发生。也就是说,不同的编码系统可能会使用相同的数值来表示不同的字符,在数据跨

10、平台的时候就会发生错误。,Unicode就是为了避免上述情况的发生而产生的,它为每个字符制订了一个唯一的数值,因此在任何语言、平台、程序中都可以安心使用。Java所使用的就是Unicode字符码系统。 举例来说,Unicode中的小写a以97来表示,在下面的程序中可以看到,声明字符类型的变量ch1、ch2分别将变量ch1的值设为97,将ch2的值设为字符a,再输出字符变量ch1及ch2的内容。 【例3-6】 TestJava3_6.java。,输出结果: ch1 = a ch2 = a 给字符变量赋值可以使用数值和字符,它们都可以使程序正确运行。要注意的是,字符要用一对单引号( )括起。 举例

11、来说,想在程序中输出一个包括双引号的字符串,可把字符变量赋值为转义字符,再将它输出来。也就是说,要在程序中声明一个字符类型变量ch,可把ch设置为“,再进行输出操作。或者也可以直接在要输出的字符串中加入特殊的转义字符。表3-3为常用的转义字符。,表3-3 常用的转义字符,下面的例子中将ch赋值为“”(要以单引号()包围),并将字符变量ch输出在显示器上,同时在打印的字符串里直接加入转义字符。读者可自行比较一下两种方式的差异。 【例3-7】 TestJava3_7.java。,输出结果: “测试转义字符!“ “hello world!“ 不管是用变量存放转义字符,还是直接使用转义字符来输出字符串

12、,程序都可以顺利运行。当然也可以不声明字符变量就输出转义字符,但如果在程序中加上太多转移字符,以至于造成混淆而不易阅读时,采用声明字符变量的方式就是一个很好的选择。,3. 浮点数类型与双精度浮点数类型 在日常生活中用到小数类型的数值(如身高、体重等需要精确的数值)时,整数就不能满足程序设计者的要求了。在数学中,这些带有小数点的数值称为实数;在Java里,这种数据类型称为浮点数类型(float),其长度为4个字节,有效范围为3.4E383.4E38。当浮点数的表示范围不够大时,还有一种双精度(double)浮点数可供使用。双精度浮点数类型的长度为8个字节,有效范围为1.7E3081.7E308。

13、浮点数的表示方式,除了指数形式外,还可用带有小数点的一般形式。例如,要声明一个double类型的变量num与一个float类型的变量sum,并同时给sum赋初值3.0,可以在程序中做如下声明及设置:,值得一提的是,使用浮点型数值时,默认的类型是double,在数值后面可加上D或d作为double类型的标识。在Java中,D或d是可有可无的。若在数值后面加上F或f,则为float类型的识别。若没有加上F或f,Java就将该数据视为double类型,在编译时就会发生错误,错误提示会告诉设计者可能失去精确度。例如,在下面的程序里声明一个float类型的变量num,并赋值为3.0,将num*num的运

14、算结构输出到显示器上。 【例3-8】 TestJava3_8.java。,表3-4 浮点数常量的特殊值,4布尔类型 布尔(boolean)类型的变量只有true(真)和false(假)两种。也就是说,当将一个变量定义成布尔类型时,它的值只能是true或false,除此之外,没有其他值可以赋值给这个变量。要想声明status变量为布尔类型,并设置为true值,可以使用下面的语句: boolean status = true ; / 声明布尔变量 status,并赋值为true 经过声明之后,布尔变量的初值为true。当然如果在程序中需要更改status的值,可以随时更改。 【例3-10】 Tes

15、tJava3_10.java。,通常布尔值用来控制程序的流程,读者可能会觉得有些抽象,本书将会陆续在后面的章节中介绍布尔值在程序流程中所起的作用。 5基本数据类型的默认值 在Java中,若在声明变量时没有给变量赋初值,则会给该变量赋默认值。表3-5列出了各种类型的默认值。,表3-5 基本数据类型的默认值数据,3.1.4 数据类型的转换 Java的数据类型在定义时就已经确定了,因此不能随意转换成其他数据类型,但Java允许用户有限度地进行类型转换处理。数据类型的转换方式可分为自动类型转换及强制类型转换两种。 1. 自动类型转换 在程序中已经定义好了数据类型的变量,若要用另一种数据类型表示,则Ja

16、va会在下列条件皆成立时自动进行数据类型的转换。 (1) 转换前的数据类型与转换后的数据类型兼容。 (2) 转换后的数据类型的表示范围比转换前的大。,值得注意的是,类型的转换只限于该行语句,并不会影响原先所定义的变量的类型,而且通过自动类型转换,可以保证数据的精确度,不会因为转换而损失数据内容。这种类型的转换方式也称为扩大转换。前面曾经提到过,若整数类型为short或byte,为了避免溢出,Java会将表达式中的short和byte类型自动转换成int类型,这样可保证其运算结果的正确性,这也是Java所提供的“扩大转换”功能。字符与整数可使用自动类型转换,整数与浮点数亦是兼容的,但是由于boolean类型只能存放true或false,与整数及字符不兼容,因此不可能进行类型转换。下面的例子给出了当两个数中有一个为浮点数时其运算结果的变化。,2强制

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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