java第三章ch3PPT优秀课件

上传人:无*** 文档编号:141200267 上传时间:2022-08-23 格式:PPT 页数:140 大小:388KB
收藏 版权申诉 举报 下载
java第三章ch3PPT优秀课件_第1页
第1页 / 共140页
java第三章ch3PPT优秀课件_第2页
第2页 / 共140页
java第三章ch3PPT优秀课件_第3页
第3页 / 共140页
资源描述:

《java第三章ch3PPT优秀课件》由会员分享,可在线阅读,更多相关《java第三章ch3PPT优秀课件(140页珍藏版)》请在装配图网上搜索。

1、2021/6/31第3章 Java语言基础3.1 Java语言的基本语法3.2 控制语句3.3 数组3.4 字符串2021/6/32 本章主要介绍编写Java程序必须了解的若干语言基础知识,包括数据类型、变量、常量、表达式和流程控制语句等。掌握这些基础知识,是书写正确的Java程序的前提条件。2021/6/333.1 Java语言的基本语法 Java语言使用国际字符格式标准(Unicode)。Unicode字符集采用16位编码,其前256个字符与ASCII字符集完全一致。除了ASCII字符之外,Unicode字符集还提供了其它语言文字,如汉字、希腊文、韩文等。2021/6/343.1 Java

2、语言的基本语法3.1.1 标识符 Java标识符(identifier)是以字母开头的字母数字序列。标识符是用户定义的单词,用于标识变量、常量、类、方法、对象、文件等。其命名规则如下:n“字母”、“数字”具有宽泛含义。字母通常指大小写英文字母、下划线(_)、美 元符($)等,也可以是Unicode字符集中的字符,如汉字等。数字通常指09。n标识符可以是字母、数字等字符的任意组合,除此之外,不能包含其它字符(如+、-以及空格等)。n标识符区分字母大小写,或者说大小写敏感。n标识符不能使用Java中的关键字。n标识符长度不受限制。2021/6/353.1.1 标识符错误的标识符:int 2x;do

3、uble my salary;String x+y;String test1-2-3;String class;String Java&JSP;在Java规范中,Java约定:关键字、变量名、对象名、方法名、包名通常使用小写;如果由多个单词构成标识符,则首字母小写,其后单词首字母大写,如toString;类名首字母大写,如FirstJava;常量名全部字母均大写,如BOOK。2021/6/363.1.2关键字 关键字是Java语言保留的具有特定含义的英文单词。每一个关键字都有一种特定含义,不能被赋予别的含义,也不能把关键字作为标识符来使用。Java中关键字以及其含义如教材表3-1所示。2021

4、/6/373.1.3分隔符 圆括号、大括号、中括号、空格、逗号、分号等称为分隔符,Java规定任意两个相邻标识符、数、关键字或两个语句之间必须至少有一个分隔符,以便编译程序能识别。2021/6/383.1.3分隔符常用的分隔符如下:n圆括号“()”:在方法声明和调用时候可以包括一组参数;在控制语句或者强制类型转换中用于数据的执行和数据类型的转换。n大括号“”:在类、方法体、语句块以及初始化数组中的值声明时使用。n中括号“”:在声明数组以及在访问数组元素中使用。n空格“”:在源代码中用空格符改善源代码的书写形式,可以分割相邻的两个语法符号,使程序易读,空格符号可以是空格、Tab制表符、回车符和换

5、行符等。n逗号“,”:多个变量声明,方法中的参数之间可以使用。n分号“;”:在语句结束以及for控制语句中可以使用。n句号“.”:在调用方法、变量时可以使用。2021/6/39n【例3-1】分隔符的使用(Separator.java)n/*功能简介:本程序演示分隔符的使用。首先声明一个数组,然后通过for语句把数组的值取出并相加,最后输出计算结果。n*/npublic class Separatornnpublic static void main(String args)nn/声明整型变量i和sum,sum并初始化nint i,sum=0;nint a=1,2,3,4,5;/声明整型数组n/

6、控制语句和数组遍历nfor(i=0;ia.length;i+)nn/遍历数组并计算结果nsum+=ai;n/for结束nSystem.out.println(sum);n/main()方法结束n/类Separator结束2021/6/3103.2.4 数据类型 Java语言中的数据类型分为两大类:基本数据类型和引用数据类型。布尔(boolean)数值类型类数组字符(char)字节(byte)短整数(short)整数(int)浮点类型单精度浮点数(float)双精度浮点数(double)数据类型基本数据类型引用数据类型枚举接口定点类型长整数(long)图3-1Java数据类型2021/6/311

7、1.布尔类型布尔类型 只有两个取值true(真)和false(假),全是小写,计算机内部用8位来表示。Java语言不允许数值类型和布尔类型之间进行转换。而在C/C+中,允许用数值表示,如用0表示false,非零表示true。Java语言中不允许这样做。2.整数类型整数类型 Java语言根据数据在内存中占用的位数不同提供了4种整数类型,分别是:byte,short,int,long,它们的位数递增,表示的数的范围也越来越大。如表3-2所示。2021/6/312整数类型长度字节数取值范围byte8位1字节-128127short16位2字节-3276832767int32位4字节-21474836

8、482147483647long64位8字节-92233720368547758089223372036854775807表3-2 Java整数类型 整型常量有3种表示形式:十进制整数、八进制整数、十六进制整数。所有Java编程语言中的整数类型都是带符号的数字,不存在无符号整数。当一个整数为长整型时,需在该数的后面加L2021/6/3133.浮点类型浮点类型 浮点类型是包含有小数部分的数值。Java中的浮点类型按其取值范围之不同,可分为float(浮点类型)和double(双精度型)两种,如表3-3所示。表3-3Java浮点类型浮点类型 长度字节数取值范围float32位4字节-3.40282

9、347E+38F3.40282347E+38Fdouble64位8字节-1.7976931348623157E+3081.797693134862315 7E+3082021/6/314 Java用浮点类型表示数学中的实数,一个浮点数值包括整数部分和小数部分。浮点数有两种表示方式:n标准记数法由整数部分、小数点和小数部分构成,如1.0,123.45等。n科学记数法一由十进制整数、小数点、小数和指数部分构成,指数部分由字母E或e跟上带正负号的整数表示 在浮点型常量后加上f或F,表示单精度。如:2.112.3e3F,2.6f,2.6F。在浮点型常量后不加任何字符或者加d或D表示双精度,如:2.11

10、,2.3e3,2.3e3d,2.3e3D,2.6,2.6d,2.6D。2021/6/315 4.字符类型字符类型 字符类型(char)数据是由一对单引号()括起来的单个字符,该字符是16位的Unicode码。用单引号括起来称为字符常量,字符常量有两种表示法:一种是用单引号将可见ASCII字符括起来,如A、a、V等;另一种是用Unicode值表示。2021/6/316 Java的字符类型采用一种新的国际标准统一字符编码标准字符集Unicode编码。统一字符编码标准是一种十六位的字符编码标准,而ASCII则是七位编码,只适用于英文。另有西欧国家所用的ISO Latin-1八位编码。使用Unicod

11、e的好处就是用一个字符集就可解决所有现今世界上的可书写语言。Unicode共有65536个编码,其中有近39000种已被定义完成,而中国字就占了21000种!虽然Java程序是用Unicode写成的,但是亦支持ASCII及ISO Latin-1的格式。因其一般是将十六位的Unicode藉UTF-8编码方式,转成八位字节流(stream)后写入文件。故与ASCII,ISO Latin-1的编码方式互通。事实上,大多数的Java程序是用ASCII写成的,因为只有较少数的文本编辑器支持Unicode。2021/6/317转义字符转义字符含义含义单引号单引号”双引号双引号b退格退格t制表符制表符r回车

12、符回车符n换行符换行符反斜杠反斜杠 转义符是一些有特殊含义,很难用一般方式表达的字符,如:回车、换行等。为了表达清楚这些特殊的字符,同C语言一样,在JAVA中,所有的转义符都用反斜线()开头,后面跟着一个字符来表示某个特定的转义符,Java中的转义字符如表3-4所示。表表3-4 转义字符转义字符2021/6/318n【例3-2】转义字符的使用(转义字符.java)n/转义字符.javan/*n 开发者:*n n 功能简介:表3-4中转义字符的使用。n*/npublic class 转义字符nnpublic static void main(String args)nnSystem.out.pr

13、intln(中国n欢迎n你!t);nn2021/6/3195.5.类型转换类型转换 Java程序中的类型转换可分为显式类型转换和隐式类型转换两种形式。(1)隐式类型转换 对于由二元运算中的算术运算符组成的表达式,一般要求运算符两边的两个操作数的类型一致,如果两者的类型不一致,则系统会自动转换为较高(即占用内存较多,取值范围较大)的类型,这便是隐式数据类型转换。2021/6/320(2)显式类型转换 隐式类型转换只能由较低类型向较高类型转换,但是在实际工作中,有时也可能需要由较高类型向较低类型转换。例如,在计算数值时为了保证其精度,为某些变量取了较高的数据类型(如double型),但在输出时,往

14、往只需要保留两、三位小数或者只输出整数,这时只能进行显式类型转换。显式类型转换需要人为地在表达式前面指明所需要转换的类型,系统将按这一要求把某种类型强制性地转换为指定的类型。格式如下:()2021/6/321char ch;byte b;short s;int i;long k;float f;double d;char ch;ch=(char)b;ch=(char)s;ch=(char)i;ch=(char)k;ch=(char)f;ch=(char)d;byte b;b=(byte)ch;b=(byte)s;b=(byte)i;b=(byte)k;b=(byte)f;b=(byte)dsh

15、ort s;s=(short)ch;s=b;s=(short)i;s=(short)k;s=(short)f;s=(short)d;int i;i=ch;i=b;i=s;i=(int)k;i=(int)f;i=(int)d;long k;k=ch;k=b;k=s;k=i;k=(long)f;k=(long)d;float f;f=ch;f=b;f=s;f=i;f=k;f=(float)d;double d;d=ch;d=b;d=s;d=i;d=k;d=f;表3-5基本数据类型的转换 2021/6/322n【例3-3】类型转换的使用(类型转换.java)n/类型转换.javanpublic cl

16、ass 类型转换nnpublic static void main(String args)nnint x=100;n/隐式转换nlong y=x;nSystem.out.println(类型转换:整型+x+转换为长整型+y);ndouble d=1212;n/显示类型转换,强制类型转换nint a=(int)d;System.out.println(类型转换:double类型+d+转换为int类型+a);nn2021/6/323注意:除了上面的基本数据类型以外,Java中还存在一种引用数据类型,包括类和接口等。如对应基本数据类型int,char,double的类Integer,Charact

17、er,Double等等,这些类包含了一些特定的方法可以实现对数值的专门操作,如把字符串转换成双精度型数值等。2021/6/324 Java的安全和健壮性很大程度上来自于它是一种强类型语言。究其原因:首先,每个变量有类型,每个表达式有类型,而且每种类型都是严格定义的;其次,所有的数值传递,不管是直接的还是通过方法调用经由参数传过去的,都要先进行类型相容性的检查,而有些语言就没有自动强迫进行数据类型相容性的检查或对冲突的类型进行转换的机制。Java编译器对所有的表达式和参数都要进行类型相容性的检查,以保证类型是兼容的。任何类型的不匹配都将被报告为错误而不是警告。在编译器完成编译以前,错误必须被改正

18、过来。2021/6/3253.1.5 常量和变量1.常量常量常量是在程序执行中其值不能被改变的量。(1)直接常量和符号常量 常量有两种形式:直接常量和符号常量。直接常量是指在程序中直接引用的常量,包括数值型常量和非数值型常量。其中,数值型常量称为常数,包括整数和浮点数,如10,-10.16等。非数值型常量有字符常量、字符串常量和布尔常量,如X,abc,true等。符号常量是以标识符形式出现的常量,符号常量必须先声明后使用。声明符号常量可以提高程序的可读性,使程序易于修改。2021/6/3263.1.5 常量和变量(2)常量声明 常量声明的形式与变量声明基本一样,还需要使用关键字final。格式

19、如下:修饰符 final 数据类型 常量标识符=常量值;修饰符:用于表示该常量的权限,如public、private等。final:用于表示该符号常量的值是不能更改的。数据类型:可以是基本数据类型。例:public final int MAX=10;final float PI=3.14f;2021/6/3273.1.5 常量和变量 Java语言约定常量标识符全部用大写字母表示。标识符一旦被声明为常量,就不能再做它用。声明常量的好处有两点:一是增加可读性,从常量名可知常量的含义;二是增强可维护性,只要在常量声明处修改常量值,即可改变程序中多处使用的常量值。2021/6/3283.1.5 常量和

20、变量 变量是在程序的运行过程中数值可变的数据,通常用来记录运算中间结果或保存数据。JAVA中的变量必须先声明后使用。Java中的变量在声明时最好进行初始化操作,否则在后面程序中访问没有初始化的变量会造成编译错误。JAVA的变量有一定的生存期和有效范围,同C语言一样,JAVA用大括号将若干语句组成语句块,变量的有效范围就是声明它的语句所在的语句块,一旦程序的执行离开了这个语句块,变量就变得没有意义,不能再使用了。2021/6/3293.1.5 常量和变量变量声明的格式如下:修饰符 类型 变量标识符=初始化表达式;见例3-4,注意各种基本的数据类型的声明方法;后面语句实现了将各种数据类型的数据转化

21、为字符串形式,并输出,注意它是如何实现转化的。2021/6/330public class VariableDeclarationpublic static void main(String args)boolean b=true;byte b1=1;short s=2;int i=3;long l=4;float f=1.11f;double d=2.222d;char c=x;String s1=我爱学习Java课程!;System.out.println(b=+b);System.out.println(b1=+b1);System.out.println(s=+s);System.ou

22、t.println(i=+i);System.out.println(l=+l);System.out.println(f=+f);System.out.println(d=+d);System.out.println(c=+c);System.out.println(s1=+s1);2021/6/3313.1.6 运算符与表达式运算符与表达式 程序中对数据的操作,实际上是指对数据的运算。表示运算类型的符号称为运算符,参与运算的数据称为操作数。运算符把操作数按Java语法规则连接起来组成表达式。运算符和表达式构成了程序中完成各种运算任务的语句,是程序设计的基础。2021/6/3323.1.6

23、运算符与表达式运算符与表达式 1.运算符运算符 Java提供了多种运算符。按参与运算的操作数的数目可分为一元运算符、二元运算符和三元运算符。按照运算符的功能可分为算术运算符、关系运算符、布尔逻辑运算符、位运算符以及赋值、条件、实例等其它运算符。2021/6/3333.1.6 运算符与表达式运算符与表达式(1)算术运算符 算术运算符包括+、-、*、/、+、-和%,使用整型、字符型或浮点型操作数。对于除法运算(/),若操作数均为整数,结果也为整数;若有浮点数参与运算,结果为浮点数。例如:3/6的结果为0,3.0/6的结果为0.5。取模运算(%)可用于整型或浮点型操作数,运算结果的符号与第一个操作数

24、的符号相同。例如:10%-3的结果为1,-10%3的结果为-1。2021/6/3343.1.6 运算符与表达式运算符与表达式 自增运算符(+)和自减运算符(-)是一元运算符,分别用于实现将变量的值增1和减1,要求操作数必须是整型或字符型变量。自增、自减运算符的前置运算是先实施自增、自减运算,再使用自增、自减后的操作数的值;后置运算是先使用操作数的值,再对操作数实施自增、自减运算。如:int x=2;int y=(+x)*3;int x=2;int y=(x+)*3;算术运算符的优先级顺序为:+、-最高,然后是*、/、%,最后是+、-。同级运算按从左到右的顺序进行。2021/6/3353.1.6

25、 运算符与表达式运算符与表达式 Java对加运算进行了扩展,使它能够进行字符串的连接,如“abc”+“de”,可得到字符串“abcde”。System.out.println(=+100+200+=);System.out.println(=+(100+200)+=);System.out.println(=+100+200);System.out.println(100+200+=);结果为:=100200=300=100200300=2021/6/3363.1.6 运算符与表达式运算符与表达式(2)关系运算符 关系运算符包括、=、=、!=,用于比较两个值,返回布尔类型的值true或fals

26、e。关系运算符都是二元运算符,常与逻辑运算符一起表示流程控制语句的判断条件。一般建议不要直接比较两个浮点数是否相等,因为float和double类型不能精确表示浮点数。关系运算符的优先级低于算术运算符。2021/6/3373.1.6 运算符与表达式运算符与表达式(3)布尔逻辑运算符 布尔逻辑运算符包括&、|、!、&和|,用于对布尔类型数据进行与、或、非、异或等运算,运算结果是布尔类型数据。其中!(逻辑非)是一元运算符,(异或)及其它运算符都是二元运算符。2021/6/3383.1.6 运算符与表达式运算符与表达式 其中,&和|分别是条件与、条件或运算符,&和|分别是逻辑与、逻辑或运算符。条件与

27、(&)和逻辑与(&)的布尔运算值相同,条件或(|)和逻辑或(|)的布尔运算值相同,但其运算过程不同。条件与、条件或运算遵循短路原则,即运算时从左往右依次判断,一旦能够确定整个表达式的结果,就立即中止运算。如:int x=3,y=5;boolean b=xy&x+=y-;int x=3,y=5;boolean b=xy&x+=y-;2021/6/339运算符运算符运算运算例例运算规则运算规则&逻辑与x&yx,y都真时结果才为真|逻辑或x|yx,y都假时结果才为假!取反!xx真时为假,x假时为真异或xyx,y同真假时结果为假&条件与x&yx,y都真时结果才为真|条件或x|yx,y都假时结果才为假2

28、021/6/3403.1.6 运算符与表达式运算符与表达式(4)位运算符 位运算符包括&、|、和,用于对二进制位进行操作,操作数只能是整型数据或字符型数据。除(取反)是一元运算符外,其余位运算符均为二元运算符。2021/6/3413.1.6 运算符与表达式运算符与表达式OP1OP2OP1OP1&OP2OP1|OP2OP1OP2001000011011100011110110表3-7 位运算真值表2021/6/3423.1.6 运算符与表达式运算符与表达式 (带符号右移位)运算可以将一个二进制数的各位右移若干位,低位移出丢弃,高位补符号位,即正数的高位补0,负数的高位补1。(不带符号右移位)运算

29、也可以将一个二进制数的各位右移若干位,低位移出丢弃,但高位补0。执行位运算时要特别注意的是,整型、字符型操作数在计算机内部是以补码形式表示的。2021/6/3433.1.6 运算符与表达式运算符与表达式例如,用一个字节存储整数时:5/运算结果为-6,实际上是00000101,结果为1111101056/运算结果为3,实际上是0000010100000110,结果为00000011-32 /运算结果为-1,实际上是11111101右移2位,高位补符号位,结果为11111111-34 /运算结果为15,实际上是11111101右移4位,高位补0,结果为00001111 Java规定,逻辑右移运算符

30、()的操作数只能是int和long型。2021/6/3441 0 1 1 1 1 1 01 1 0 0 0 0 0 11 0 1 1 1 1 1 1-65-65 原码原码反码反码补码补码1.正数的反码、补码和原码同形;正数的反码、补码和原码同形;负数的反码负数的反码:为其原码符号位不变,为其原码符号位不变,其它按位求反;其它按位求反;负数的补码负数的补码:先对原码求其反码先对原码求其反码,再在末位加再在末位加1。为了简化运算操作和运算器的设计,计算机中用到了反码和补码编码形式。利用“补码”可以实现加减法之间的相互转换。1 1 0 0 0 0 0 0 原码原码 反码反码 补码补码反码反码补码补码

31、2021/6/3453.1.6 运算符与表达式运算符与表达式(5)赋值运算符 赋值运算符包括=和复合赋值运算符,如算术复合赋值运算符+=、-=、*=、/=、%=,位复合赋值运算符=、=、&=、|=、=等。赋值运算(=)将赋值号右边表达式的值赋值给左边的变量;复合赋值运算符用赋值号左边的变量与右边的表达式作为操作数执行相应运算,并将运算结果赋值给赋值号左边的变量。注意区分赋值号(=)和等于号(=)例如:i+=1;/等价于i=i+1;变量i既是参与+运算的操作数之一,也是存储运算结果的变量。2021/6/3463.1.6 运算符与表达式运算符与表达式(6)条件运算符 条件运算符(?:)是三元运算符

32、。例如:x?y:z其计算过程是:先计算x的值;若x的值为true,则该条件运算的结果为y的值,否则该条件运算的结果为z的值。要求y与z的值具有相同的数据类型。2021/6/3473.1.6 运算符与表达式运算符与表达式(7)实例运算符 实例运算符(instanceof)用于判断一个指定对象是否是一个指定类(或它的子类)的实例。例如:obj instanceof myclass 其中obj是一个对象,myclass是一个类,若obj是myclass创建的对象,则运算结果是true,否则是false。2021/6/3483.1.6 运算符与表达式运算符与表达式括号与方括号:括号与方括号:括号的优先

33、级在所有的运算符中是最高的,方括号是数组运算符运算符:运算符:用于访问对象实例或者类的属性和方法new运算符:运算符:用于创建一个新的对象或者新的数组。2021/6/3493.1.6 运算符与表达式运算符与表达式2.表达式表达式 表达式是语句中最常见的组成元素之一。本质上,表达式描述运算规则并按规则执行运算,运算得到的结果值称为表达式的值,该值的类型即为表达式的类型。运算符的结合性决定了同一优先级的多个运算符的运算顺序,包括左结合(从左向右)和右结合(从右向左)。一元运算符-、!等都是右结合的,即操作数在运算符的右边。自增、自减运算符+和-根据其前置运算、后置运算的特点表现出两种结合性。除了赋

34、值运算符,其它二元运算符的结合形式都是从左向右的。Java所有运算符的优先级和结合性如教材P51表3-8所示。2021/6/3503.2 控制语句控制语句 控制语句提供对程序执行中流程的控制,是程序的核心。Java语言提供各种语句来实现程序的流程控制。Java语言语句分类如图所示。2021/6/3513.2 控制语句控制语句语句顺序结构选择语句循环语句转移语句表达式语句空语句复合语句条件语句if开关语句switchwhiledo-whileforbreakcontinuereturn2021/6/3523.2.1顺序语句顺序语句 顺序结构是Java的基本结构。除非给出命令,否则计算机就会按照语

35、句的编写次序一条接一条地执行,中间没有判断和跳转,直到程序结束,即按顺序执行。顺序结构语句包括表达式语句、空语句和复合语句。2021/6/3533.2.1顺序语句顺序语句 1.表达式语句表达式语句 某些表达式在其后面加上分号即可构成表达式语句。如自增自减运算、赋值、类实例化、方法调用等,都是表达式语句。例如:ni+;nx=10;nsum=sum+1;nnew JFrame();2021/6/3543.2.1顺序语句顺序语句 2.空语句空语句 空语句仅包含一个分号,不执行任何操作。用于程序中某个语法上要求应该有一条语句而实际上不需要处理数据的情况。例如:for(int i=0;iy)max=x;

36、elsemax=y;if(zmax)max=z;System.out.println(最大值是:+max);min=xy?x:y;min=zmin?z:min;System.out.println(最小值是:+min);有时对复杂的判断,单个if语句不能实现,需要多个if语句进行嵌套。2021/6/359例3-6 public class StatementNestedSeasonpublic static void main(String args)String season;/声明一个变量,用于表示季节int month=5;/具体的一个月份if(month=3|month=4|month

37、=5)season=春季;else if(month=6|month=7|month=8)season=夏季;else if(month=9|month=10|month=11)season=秋季;else if(month=12|month=1|month=2)season=冬季;elseseason=对不起,你选择的月份不是1月-12月,不在一年四季中;System.out.println(season);2021/6/360例3-7 import java.util.Scanner;public class StatementNestedScorepublic static void m

38、ain(String args)float score;Scanner input=new Scanner(System.in);/实例化一个对象System.out.println(请输入成绩:);score=input.nextFloat();/对象调用方法获取数据if(score90)if(score80)if(score70)if(score60)System.out.println(你的成绩等级为:不及格!);else System.out.println(你的成绩等级为:及格!);else System.out.println(你的成绩等级为:中等!);else System.ou

39、t.println(你的成绩等级为:良好!);else System.out.println(你的成绩等级为:优秀!);2021/6/361Scanner类是一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的 next 方法将得到的标记转换为不同类型的值。“Scanner input=new Scanner(System.in);”是实例化一个对象input,System.in是参数,是Java的标准输入对象。“input.nextFloat();”将输入信息的下一个标记扫描为一个

40、 float。2021/6/3622.switch分支语句分支语句switch语句基本的语法格式如下:switch(表达式)case 常量表达式1:语句序列1;break;case 常量表达式2:语句序列2;break;default:语句序列;switch语句的执行过程:将表达式的值按照从上至下顺序依次与case后面常量表达式的值进行比较,当两个值相等时,执行其后的语句序列,直到遇到break或者switch语句执行完。如果没有和表达式的值相等的常量时,执行default 后面的语句,若没有default 语句,则不执行。2021/6/363import java.util.Scanner;

41、public class SwitchWeekpublic static void main(String args)Scanner input=new Scanner(System.in);/实例化一个对象System.out.println(请输入17的整数:);int day=input.nextInt();/对象调用方法获取数据switch(day)case 7:System.out.println(星期日);break;case 1:System.out.println(星期一);break;case 2:System.out.println(星期二);break;case 3:Sy

42、stem.out.println(星期三);break;case 4:System.out.println(星期四);break;case 5:System.out.println(星期五);break;case 6:System.out.println(星期六);break;default:System.out.println(你输入的日期不在有效范围内!);2021/6/364import java.util.Scanner;public class SwitchSeasonpublic static void main(String args)Scanner input=new Scan

43、ner(System.in);System.out.println(请输入112的整数:);int month=input.nextInt();switch(month)case 3:/空语句,继续执行下一个case语句 case 4:/空语句,继续执行下一个case语句 case 5:System.out.println(春季);break;case 6:case 7:case 8:System.out.println(夏季);break;case 9:case 10:case 11:System.out.println(秋季);break;case 12:case 1:case 2:Sys

44、tem.out.println(冬季);break;default:System.out.println(你输入的月份不在有效范围内!);2021/6/3653.2.3循环语句循环语句 循环语句可根据循环条件反复执行循环体。Java语言中的循环语句有:while语句、do-while语句和for语句。2021/6/3663.2.3循环语句循环语句1.while语句语句while语句基本的语法格式如下:while(布尔表达式)一条语句或者多条语句;while语句先判断后执行。当布尔表达式的值为true,执行语句,语句也可以是用“”括起来的代码块,执行完后再去判断布尔表达式是否为true,继续进行

45、循环;当布尔表达式的值为false时,循环结束。2021/6/367public class WhileSumpublic static void main(String args)int i=1;int n=10;int sum=0;while(i=n)sum+=i;i+;System.out.println(1加到10的和是:+sum);System.out.println(循环后变量i的值是:+i);2021/6/368import java.util.Scanner;public class WhileAnySumpublic static void main(String args)

46、double x=0;double sum=0;int i=0;Scanner input=new Scanner(System.in);System.out.println(请输入多个数,每输入一个数后按Enter或Tab或者空格键确认:);System.out.println(输入一个非数字符号结束输入操作!);/hasNextDouble()方法是判断输入的是否是double类型的数据while(input.hasNextDouble()x=input.nextDouble();/获取数据sum+=x;i+;System.out.println(共输入+i+个数,其和为:+sum);20

47、21/6/3693.2.3循环语句循环语句do-while语句基本的语法格式如下:do 一条语句或者多条语句;while(布尔表达式);先执行do中的语句再判断while中的布尔表达式的值,为true继续循环,否则循环结束。2021/6/370public class DoWhileSumpublic static void main(String args)int i=1;int n=10;int sum=0;dosum+=i;i+;while(igame)System.out.println(你猜的数字太大!);elseSystem.out.println(你猜的数字太小);while(g

48、uess!=game);System.out.println(恭喜你,你猜了+counter+次,你猜对了!);2021/6/373/*功能简介:使用do-while语句进行利息计算。假如在银行帐号上存入100000元,年利率是3.6%,计算多少年后存款能够连本带息翻一番。使用的公式如下:a=p(1+r)n 其中:p是存款的资金。r是每年的利率(0.036,代表3.6%)。n是存款年数。a是第n年底结算的存款总额。*/public class Interestpublic static void main(String args)/声明变量用于保存第n年底结算的存款总额double amoun

49、t;/声明变量并初始化每年的利率double rate=0.036;/声明变量并初始化初始存款总额double principal=100000.0;/声明存款的年限并初始化int n=0;2021/6/374 do/*使用java.lang.Math类中的pow()方法,实现对公示(1+r)n的计算。Math类中提供许多数学方法可供使用,如需使用请查API*/amount=principal*Math.pow(1.0+rate,n);n+;while(amount2*principal);System.out.println(n+年后连本带利翻一番!+账户资金为:+2*principal);

50、2021/6/375do-while循环与while循环的不同在于:它先执行循环中的语句,然后再判断条件是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while循环至少要执行一次循环语句。2021/6/3763.2.3循环语句循环语句3.for语句语句for语句基本的语法格式如下:for(表达式1;表达式2;表达式3)一条语句或者多条语句;表达式1一般是一个赋值语句,它用来给循环控制变量赋初值;表达式2是一个布尔类型的表达式,它决定什么时候退出循环;表达式3一般用来修改循环变量,控制变量每循环一次后按什么方式变化。2021/6/3773.2.3循环语句循环语句for语句的执行

51、过程:1、在循环刚开始时,先计算表达式1,在这个过程中,一般完成的是初始化循环变量或其它变量。2、根据表达式2的值来决定是否执行循环语句。表达式2是一个返回布尔值的表达式,若该值为假,将不执行循环语句,并退出循环;若该值为真,将执行循环语句。3、执行完一次循环语句后,计算表达式3。在这个过程中一般会修改循环变量。4、转入第2步继续执行。2021/6/378public class ForSumpublic static void main(String args)/声明循环变量i并初始化,按自增或者自减变化int i=1;/声明循环体n并初始化,用于控制循环次数 int n=10;/声明变量t

52、otal并初始化,用于计算结果int total=0;for(i=1;i=n;i+)total+=i;/计算结果/格式化输出,%d表示输出的类整型,total和其对应 System.out.printf(结果是:%dn,total);2021/6/379/*功能简介:使用for语句进行利息计算。假如在银行帐户上存入100000元,年利率是3.6%,计算并显示10年间每年结算时帐户里的存款总额。公式如【3-14】中所示。*/public class ForInterestpublic static void main(String args)double amount;double princi

53、pal=1000000.0;double rate=0.036;/*格式化输出%s%20sn表示要输出两个字符串类型的数据,其中%20s表示以20个字符的长度输出对应的变量“存款额”。两个%,对应后面两个变量。*/System.out.printf(%s%20sn,年,存款额);2021/6/380 for(int year=1;year=10;year+)amount=principal*Math.pow(1.0+rate,year);/*%4d表示后面对应的year长度为4;%,20.2f表示对应的变量amount长度为20且有两位小数点并右对齐。*/System.out.printf(%

54、4d%,20.2fn,year,amount);2021/6/381/*功能简介:使用for语句的多重循环(循环语句中又有循环语句,称为多重循环结构)输出九九乘法表。*/public class Mul99 public static void main(String args)int i;int j;int n=9;System.out.print(*|);for(i=1;i=n;i+)System.out.print(+i);System.out.print(n-|);for(i=1;i=n;i+)System.out.print(-);System.out.println();2021/

55、6/382 for(i=1;i=n;i+)/控制九次循环 System.out.print(+i+|);/输出每行的数 for(j=1;j=i;j+)/输出乘积数 System.out.print(+i*j);/数据具体的某个乘积 System.out.println();2021/6/3832021/6/3843.2.4转移语句转移语句 Java语言提供3种无条件转移语句:return、break和continue。return语句可以从方法中返回值;break和continue语句用于控制流程转移。2021/6/3853.2.4转移语句转移语句1.return语句语句 return语句能终

56、止当前成员方法的执行,返回到调用该方法的位置,并从紧跟该语句的下一条语句继续程序的执行。如果该方法的返回类型不是void,则需要提供相应类型的返回值。return语句有以下两种使用格式:格式1:return;该格式用在返回类型为void的方法中,且return可以省略。一般若方法为void类型,return可省略。格式2:return 返回值;该格式返回值可以是基本数据类型和引用数据类型,但必须和方法的类型一致,否则编译无法通过。2021/6/3863.2.4转移语句转移语句2.break语句语句break语句主要有3种作用:一是终止switch语句的执行,跳出switch语句,执行switc

57、h语句后面的语句;二是终止循环语句序列,跳出循环结构,即跳出if、while、for等语句;三是与标记语句配合使用从内层循环或者内层程序跳出。2021/6/387public class BreakStatement public static void main(String args)int count;for(count=1;count=10;count+)if(count=5)break;System.out.println(count);/在Java语言中+表示两个字符串连接 System.out.println(循环中断的数是:+count);2021/6/3883.2.4转移语句

58、转移语句3.continue语句语句 终止当前这一轮的循环,跳过本轮剩余的语句,直接进入当前循环的下一轮。在while或do-while循环中,continue语句会使流程直接跳转至条件表达式。在for循环中,continue语句会跳转至表达式3,计算修改循环变量后再判断循环条件。2021/6/389public class ContinueStatement public static void main(String args)int count;for(count=1;count=10;count+)if(count=5)continue;System.out.println(count

59、);System.out.println(循环的次数是:+count);2021/6/390n在程序中使用到相关类时,必须在类的声明前面用import加载该类。如import java.util.Scanner;n定义main()方法的方法头时必须按以下格式 public static void main(String argu)nmain方法中的参数String argu仅适用于执行java程序时提交的参数,如:java MainArgu abc 123 qwe 这时系统会自动创建String argu=new String3;argu0=“abc”;argu1=“123”;argu2=“q

60、we”;n类Scanner扫描器获取输入数据主要适用于java程序运行的过程中(即在main方法内部),当需要用户输入相关数据时使用。使用方法(获取单个数据或多个数据都可以):import java.util.Scanner;Scanner a=new Scanner(System.in);int i=a.nextInt();在java中输入数据与C是不同的2021/6/391nJava中的变量在声明时最好进行初始化操作,否则在后面程序中可能访问到没有初始化的变量会造成编译错误。n在java中通常使用System.out.print()或System.out.println()这两种标准输出方

61、法,两种方法的不同之处在于print仅输出参数中的内容,而println输出参数中的内容后回车换行。n编写标准输出语句时,经常会用到“+”实现字符串的连接,这里与C也是不同的。如;System.out.println(“这三个数从小到大依次为:”+a+“,”+b+“,”+c);n如果System.out.println();语句中没有参数,仅执行回车换行的作用。nSystem.out.printf()通常适用于控制显示内容的格式时。n最后,一个java项目可以创建多个java包,每个java包中可以创建多个java源程序(即多个java类)。与C不同。2021/6/3923.3数组数组 在程序

62、设计中,为了处理方便,把具有相同类型的若 干变量按有序的形式组织起来,这些按序排列的同类数据元素的集合称为数组。数组的元素个数称为数组的长度。数组元素在数组中的位置称为数组的下标。数组下标的个数称为数组的维数,有一个下标是一维数组,有二个下标就是二维数组。数组是Java语言中的引用数据类型。数组元素的数据类型既可以是基本数据类型,也可以是引用数据类型。2021/6/3933.3.1一维数组一维数组创建一维数组主要分为三个步骤:声明,分配空间,初始化 1.一维数组声明一维数组声明声明一维数组的语法格式有以下两种形式:数据类型 数组名称;数据类型 数组名称;注意:数据类型是数组元素的数据类型,可以

63、是基本数据类型,也可以是引用类型。2021/6/3943.3.1一维数组一维数组例如:int a;int b;String grades;D200-Card ArrayOf200Card;声明多个一维数组可使用如下方式:int c,d,e;或者int c,d,e;2021/6/3953.3.1一维数组一维数组2.为数组分配空间为数组分配空间 声明数组仅仅指定了数组的名字和数组元素的类型,要想真正使用数组还需要为它开辟内存空间,即创建数组空间。与多数语言一样,Java不支持变长的数组(Vector类可以实现变长数组),所以在创建数组空间时必须指明数组的长度,以确定所开辟的内存空间的大小。创建数组

64、空间的语法格式为:数组=new 数据类型长度;例如:int a;a=new int6;数组a获得6个存储单元的内存空间,存储单元的大小由数组元素的数据类型决定。上述语句等价于:int a=new int6;2021/6/3963.3.1一维数组一维数组 对于数组元素类型是基本数据类型的数组,在创建数组空间的同时,还可以同时给出各数组元素的初值,这样可以省略创建空间的new算符。例如:int a=1,2,3,4,5,6,7,8,9,10;这个语句创建了一个包含10个整型元素的数组,同时给出了每个元素的初值。2021/6/3973.3.1一维数组一维数组3.创建数组元素并初始化创建数组元素并初始化

65、 使用new动态分配存储单元后,将对数组元素进行初始化。对于数据元素为基本数据类型的数组,系统会自动为每个数组元素赋初值,各种数据类型的初始化值如表3-6所示。表3-6数据类型的初始化值数据类型数据类型初始化初始化值值数据类型数据类型初始化初始化值值byte、short、int、long0charu0000float0.0fbooleanfalsedouble0.0引用数据类引用数据类型型null2021/6/3983.3.1一维数组一维数组 对于以某一类对象为数组元素的数组,创建并初始化每个数组元素的步骤却是必不可少的。如:D200-Card ArrayOf200Card=new D200-

66、Card15;对于数组ArrayOf200Card中的每个元素,必须用一条专门的语句来实现创建该元素和初始化该元素的工作,一般用如下的循环完成。for(int i=0;i ArrayOf200Card.length;i+)ArrayOf200Card i=new D200-Card(200);只有在完成了所有数组元素的创建和初始化工作之后,才可以在程序中使用这些数组元素。2021/6/3993.3.1一维数组一维数组数组长度数组长度 Java语言自动为每个数组提供length属性保存数组存储单元个数。可以使用点运算符获取数组长度。格式如下:数组名称.length 建议使用length使数组下标在0length-1之间变化,这样既能避免产生下标越界的运行错误,又能使程序段不受数组长度变化的影响,从而使程序更加稳定和易于维护。2021/6/31003.3.1一维数组一维数组数组元素的表示和运算数组元素的表示和运算数组声明、数组空间申请以及对数组元素的操作如教材P72图3-13所示。注意:注意:数组元素的下标(即数组元素方括号内的数字,代表了数组元素在数组中的位置)从0开始,直到数组元素个数

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!