版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java实用教程第3章 Java根本语法 3.1 Java程序的构成程序的构成 3.2 数据类型、变量和常量数据类型、变量和常量 3.3 运算符和表达式运算符和表达式 3.4 流程控制流程控制 3.5 数组数组 习习 题题 Java实用教程学习目的与要求:学习目的与要求:深化了解并熟记深化了解并熟记Java 的语法规范的语法规范。熟练运用各种数据类型的定义、熟练运用各种数据类型的定义、表示和援用。表示和援用。熟练运用各种控制语句。熟练运用各种控制语句。熟练运用一维数组熟练运用一维数组 Java实用教程文件命名规那么 总那么:文件名必需与类名一致。 1假设文件只需一个类,那么文件名必需与类名完全
2、一致,包括大小写。 3一个文件中,只能有一个public类; 3假设文件中不只一个类,那文件名必需与声明为public的类名坚持一致;Java实用教程4 4假设文件不只一个类,没有声明为假设文件不只一个类,没有声明为publicpublic类类,那么文件名可以与其他类的名字中的一个坚持,那么文件名可以与其他类的名字中的一个坚持一致;一致;5 5假设类中有假设类中有mainmain方法,并声明为方法,并声明为publicpublic类,类,mainmain方法必需位于方法必需位于publicpublic类中;类中;6 6假设类中有假设类中有mainmain方法,没有声明为方法,没有声明为publ
3、icpublic类类,文件名保管为与含有,文件名保管为与含有mainmain方法的类名一致。方法的类名一致。Java实用教程 /*检测类名与文件名的一致性*/ class StudentTest public static void main(String args) Student aStudent=new Student(); aStudent.setName(“张楠); aStudent.setStudentNum(“3010416001); System.out.println(“学生的姓名是:+aStudent.getName()+,学号是:+aStudent.getStudentN
4、um(); Java实用教程class People private String name; public String getName() return name; public void setName(String strName) name=strName;Java实用教程class Student extends People private String studentNum;public String getStudentNum() return studentNum;public void setStudentNum(String strStudentNum)studentN
5、um=strStudentNum;Java实用教程 文件名只能保管为StudentTest.java才干运转。 思索:在class StudentTest前面加上public后,再保管为People.java或Student.java,编译会出现什么情况。Java实用教程3.1 Java程序的构成程序的构成3.1.1 逻辑构成逻辑构成 Java源程序逻辑构成分为两大部分:程序头包的援用和类源程序逻辑构成分为两大部分:程序头包的援用和类的定义。的定义。 1. 程序头包的援用程序头包的援用 主要是指援用主要是指援用JDK软件包自带的包,也可以是本人定义的软件包自带的包,也可以是本人定义的类。援用之
6、后程序体中就可以自在运用包中的类的方法和属性类。援用之后程序体中就可以自在运用包中的类的方法和属性等。等。Java实用教程 3. 类的定义类的定义 源程序必需有一个主类;源程序必需有一个主类; 在运用程序中,主类为包含在运用程序中,主类为包含main方法的类;方法的类; 在在Applet中,主类为用户自定义的系统中,主类为用户自定义的系统Applet类的扩展类。类的扩展类。在在Java源程序中,主类的名字同文件名一致。源程序中,主类的名字同文件名一致。 类的定义又包括类头声明和类体定义。类体中包括属性声类的定义又包括类头声明和类体定义。类体中包括属性声明和方法描画。明和方法描画。Java实用教
7、程3.1.3 物理构成物理构成 Java源程序物理上由三部分构成,分别为语句、块和空白。源程序物理上由三部分构成,分别为语句、块和空白。 (1) 语句指一行以分号语句指一行以分号“;终了的语句。终了的语句。 (3) 块指用括号对块指用括号对界定的语句序列,块可以嵌套运用。界定的语句序列,块可以嵌套运用。 (3) 空白指语句之间、块内部或者块之间的空白行。空白不空白指语句之间、块内部或者块之间的空白行。空白不影响影响Java源程序的编译和运转,适当地运用空白,可以构成良源程序的编译和运转,适当地运用空白,可以构成良好的代码风格。好的代码风格。Java实用教程3.1.3 注释语句注释语句行注释为以
8、行注释为以/开场的行;开场的行;块注释以块注释以/*开场和开场和*/终了终了例如,下面的语句就是注释语句用来阐明程序文件称号的。例如,下面的语句就是注释语句用来阐明程序文件称号的。/程序文件称号为程序文件称号为WelcomeApplet.java上述的语句注释可以更改为:上述的语句注释可以更改为:/*程序文件称号为程序文件称号为WelcomeApplet.java*/或或/*程序文件称号为程序文件称号为WelcomeApplet.java*/Java实用教程3.1.4 标识符、关键字和本义符标识符、关键字和本义符 在在Java言语中,标识符是赋予变量、类和方法等的称号。言语中,标识符是赋予变量
9、、类和方法等的称号。由编程者本人指定,但需求遵照一定的语法规范:由编程者本人指定,但需求遵照一定的语法规范: (1) 标识符由字母、数字、下划线标识符由字母、数字、下划线(_)、美圆符号、美圆符号($)组成,组成,但美圆符号用得较少。但美圆符号用得较少。 (3) 标识符从一个字母、下划线或美圆符号开场。标识符从一个字母、下划线或美圆符号开场。 (3) Java言语中,标识符大小写敏感,必需区别对待。言语中,标识符大小写敏感,必需区别对待。 (4) 标识符没有最大长度的限制,但最好表达特定的意思。标识符没有最大长度的限制,但最好表达特定的意思。 (5) 标识符定义不能是关键字。标识符定义不能是关
10、键字。Java实用教程例如:_abc , $ABC ,3A ,A# ,For,顺时 Java开发的命名习惯一切的命名要望文生义,这样才具有良好的可读性Total,Sum,ShunshiStudent类名,接口名:每个单词的首字母大写,其他字母小写 如类MyFirstJava,Player,Teacher属性,方法,,部分变量名:第一个单词全小写,从第二个单词开场以后每个单词首字母大写,其他字母小写 如方法 getName() setDoctorBirthday()常量:每个单词一切字母全部大写,单词之间用_来衔接 java中运用final修饰 final int MARK_GREED=33;包
11、名:一切字母全部小写 如package com.shunshi.corejava.day01Java实用教程 _abc , $ABC ,3A ,A# ,For,顺时 关键字又称保管字,是指Java言语中自带的用于标志数据类型名或者程序构造名等的标识符,如public、double等。 Java实用教程 关键字:对Java技术编译器有特殊的含义,可以被编译器识别执行 abstract do implements private throw boolean double import protected throws break else instanceof public transient b
12、yte extends int return true case false interface short try catch final long static void char finally native super volatile class float new switch while continue for null synchronized default if package thisJava实用教程Java关键字特点java关键字与c+很多类似,只需与c+一样的,它的含义都与c+中的一样有些关键字c+有,而java没有sizeof求出某种类型的变量的占内存的大小为什么
13、c+有sizeof?由于不同机器内存占用空间大小不一样 16,33,64位,取决于操作系统平台。为什么Java不需求?由于有JVM。java中的关键字都是小写的true、false和null为小写,而不是象在C+言语中那样为大写。严厉地讲,它们不是关键字。Java实用教程 有些关键字java没有取消保管下来,但它本人也不用它也不给程序员用 goto和const不是Java编程言语中运用的关键字,而是保管字。 什么是保管字? 为什么保管下来但不能用? 在java中final替代const goto在c+代表无条件跳转,功能很好,但不能经常用,要谨慎。 很多建议去掉goto关键字,没有了解goto
14、真正含义。 为什么c+到如今都没有删除掉goto?它有一个特殊使命 Java中运用break替代goto 跳出一层循环 :break 跳出多层循环:break outout是一个标号,可以跳到out标识处 break防止滥用goto,把goto功能减弱了,只能跳到外层循环 java中参与新的关键字enum assert enum:枚举 assert:断言Java实用教程表表3.1 转转 义义 符符引 用 方 法 含 义 b 退格 t 水平制表符Tab n 换行 f 表格符 r 回车 单引号 双引号 反斜线 本义符是指一些有特殊含义的、很难用普通方式表达的字符,如回车、换行等。一切的本义符以反斜
15、线()开头,后面跟着一个字符来表示某个特定的本义符,如表3.1所示。Java实用教程3.2 数据类型、变量和常量数据类型、变量和常量3.2.1 数据类型数据类型 Java编程言语定义了八种根本的数据类型编程言语定义了八种根本的数据类型(见表见表3.3),共分,共分为四类:整数类为四类:整数类(byte、short、int、long)、文本类、文本类(char)、浮点、浮点类类(double、float)和逻辑类和逻辑类(boolean)。Java实用教程表表3.2 Java的数据类型的数据类型Java实用教程1. 整数类整数类(1) 采用三种进制采用三种进制十进制、八进制和十六进制。十进制、八
16、进制和十六进制。3 十进制值是十进制值是3;077 首位的首位的0表示这是一个八进制的数值;表示这是一个八进制的数值;0 xBAAC 首位的首位的0 x表示这是一个十六进制的数值。表示这是一个十六进制的数值。(3) 具有缺省具有缺省int。(3) 用字母用字母“L和和“l定义定义long。(4) 一切一切Java编程言语中的整数类型都是带符号的数字。编程言语中的整数类型都是带符号的数字。Java实用教程 3. 文本类 (1) 代表一个16 bit Unicode字符。 (3) 必需包含用单引号( )援用的文字。 (3) 运用以下符号: a一个字符。 t-一个制表符。 u? -一个特殊的Unic
17、ode字符,?应严厉运用四个十六进制数进展交换。Java实用教程 3. 浮点类 默以为double类型,假设一个数字包括小数点或指数部分,或者在数字后带有字母F或f(float)、D或d(double),那么该数字为浮点数。Java实用教程4. 逻辑类逻辑类boolean数据类型有两种值:数据类型有两种值:true和和false。例如:例如:boolean flag = true;上述语句声明变量上述语句声明变量flag为为boolean 类型,它被赋予的值为类型,它被赋予的值为true。Java实用教程数据类型转换数据类型转换:分为自动类型转换和强迫类分为自动类型转换和强迫类型转换型转换自动
18、类型转换自动类型转换:整型、浮点型、字符型数据可以混合运算。整型、浮点型、字符型数据可以混合运算。在执行运算时,不同类的数据先转化为同一在执行运算时,不同类的数据先转化为同一类型,然后进展运算。转换从低级到高级的类型,然后进展运算。转换从低级到高级的顺序为:顺序为:Short或或byte int longfloat double char 强迫类型转换强迫类型转换高级数据要转换成低级数据需用强迫类型转高级数据要转换成低级数据需用强迫类型转换,格式为:换,格式为:数据类型数据数据类型数据或或数据类型数据类型表达式表达式 注:逻辑类数据不能和其它类型的数据转换注:逻辑类数据不能和其它类型的数据转换
19、。Java实用教程 强迫类型转换:只需不能自动转换的,那么只能是强迫转换 整型数据之间的强转:改动数据的符号;改动数值 int a=0 x3aff; byte b=(byte)a; b为-1 强迫转换的原理:从最低位开场取到目的类型长度为止 整型之间的强转是保管二进制低位,去掉高位,需求思索在内存中如何存储 实型强转整型是保管整数,去掉小数,不思索实型在内存中的如何存储 byte+byte会自动提升为int byte a1=1,a3=3;byte a3=a1+a3;(精度丧失) +=不进展类型提升 byte c=3; c=c+3; c+=3;System.out.println(c); 默许整
20、型为int,int,long提升为float有精度丧失 float fa=37; System.out.println(fa); int ia=(int)fa; System.out.println(ia);Java实用教程3.2.3 变量与常量变量与常量 常量是指整个运转过程中不再发生变化的量常量是指整个运转过程中不再发生变化的量 变量是指程序的运转过程中发生变化的量,通常用来存储变量是指程序的运转过程中发生变化的量,通常用来存储中间结果,或者输出暂时值。中间结果,或者输出暂时值。 变量的声明也指变量的创建。执行变量声明语句时,系统变量的声明也指变量的创建。执行变量声明语句时,系统根据变量的
21、数据类型在内存中开辟相应的存储空间并赋予初始根据变量的数据类型在内存中开辟相应的存储空间并赋予初始值。变量有一个作用范围,超出它声明语句所在的块就无效。值。变量有一个作用范围,超出它声明语句所在的块就无效。Java实用教程l Java的常量的常量l Java中的常量分为整数型常量、浮点型常量中的常量分为整数型常量、浮点型常量、布尔型常量、字符型常量和字符串常量、布尔型常量、字符型常量和字符串常量 l 常量的定义格式为:常量的定义格式为:l final 常量类型常量类型 常量名常量名1=常量值常量值,常量名常量名3=常量值常量值3. l final是定义常量的关键字。是定义常量的关键字。l Ja
22、va中的常量值区分为不同的类型,类型可中的常量值区分为不同的类型,类型可以是以是Java中任何合法的数据类型中任何合法的数据类型 Java实用教程Java的变量的变量Java变量定义的格式:变量定义的格式: 类型名类型名 变量名变量名1,变量名,变量名3,; 或:类型名或:类型名 变量名变量名1=初值初值,变量名,变量名3=初值初值,;变量按作用域分类:变量按作用域分类: 部分变量:在方法或方法的代码块中声明,作用域从该变量部分变量:在方法或方法的代码块中声明,作用域从该变量的定义位置起到它所在的代码块终了。的定义位置起到它所在的代码块终了。 方法参数方法参数(方式参数方式参数):传送给方法的
23、参数,作用域是这个方:传送给方法的参数,作用域是这个方法。法。 异常处置参数:传送给异常处置代码,作用域是异常处置部异常处置参数:传送给异常处置代码,作用域是异常处置部分。分。留意:留意:部分变量必需先赋值再运用部分变量必需先赋值再运用部分变量的作用域是从定义它开场到定义它的代码块终了部分变量的作用域是从定义它开场到定义它的代码块终了在同一重合范围内不允许有在同一重合范围内不允许有3个同名部分变量出现个同名部分变量出现Java实用教程 类成员变量:在类定义中声明,作用域是整类成员变量:在类定义中声明,作用域是整个类。个类。在一个确定的域中,变量名应是独一的。通常,一个在一个确定的域中,变量名应
24、是独一的。通常,一个域用大括号域用大括号来划定来划定Java实用教程 下面看一个运用各种类型变量声明并改动的例如。程序中pi为常量,s1、i1、l1、ch1、f1、d1、b1为全局变量,可以在方法change中发生改动,然后在方法main中输出。而s3、i3、l3、ch3、f3、d3、b3是方法main的部分变量,它们的作用范围只局限于方法main中。 【例3.3】测试不同数据类型的变量,程序输出如图3.3所示。源程序代码如下:/程序文件称号为SetVariable.javapublic class SetVariable/全局变量Java实用教程static double pi = 3.14
25、1593654;/数学常量static short s1;static int i1;static long l1;static char ch1;static float f1;static double d1;static boolean b1;public static void main(String args)Java实用教程/部分变量short s3 = 35;int i3 = -33;long l3 = 34555L;char ch3 = A;float f3 = 897.89F;double d3 = 34.345;boolean b3 = false;/输出常量System.
26、out.println(数学常量pi = + pi); /输出部分变量Java实用教程System.out.println(*部分变量*);System.out.println(短整型变量s3 = + s3);System.out.println(整型变量i3 = + i3);System.out.println(长整型变量l3 = + l3);System.out.println(字符变量ch3 = + ch3);System.out.println(浮点数类型f3 = + f3);System.out.println(双精度型变量d3 = + d3);System.out.println(
27、布尔型变量b3 = + b3); /调用方法修正全局变量的值Java实用教程change();/输出全局变量的值System.out.println(*全局变量*);System.out.println(短整型变量s1 = + s1);System.out.println(整型变量i1 = + i1);System.out.println(长整型变量l1 = + l1);System.out.println(字符变量ch1 = + ch1);System.out.println(浮点数类型f1 = + f1);System.out.println(双精度型变量d1 = + d1);System
28、.out.println(布尔型变量b1 = + b1);Java实用教程 /方法:修正全局变量的值 public static void change() s1 = ;i1 = 88;l1 = 987654331L;ch1 = B;f1 = 3.3590F;d1 = -1.04E-5;b1 = true; Java实用教程图3.3 变量输出结果Java实用教程3.3 运算符和表达式运算符和表达式 Java常用的运算符分为五类:算术运算符、赋值运算符、关系运算符、布尔逻辑运算符、位运算符。 表达式是由常量、变量、对象、方法调用和操作符组成的式子。表达式必需符合一定的规范,才可被系统了解、编译和
29、运转。表达式的值就是对表达式本身运算后得到的结果。 根据运算符的不同,表达式相应地分为以下几类:算术表达式、关系表达式、逻辑表达式、赋值表达式,这些都属于数值表达式。Java实用教程3.3.1 算术运算符及算术表达式算术运算符及算术表达式Java中常用的算术运算符如下:中常用的算术运算符如下:+加运算符加运算符-减运算符减运算符*乘运算符乘运算符/除运算符除运算符%取模运算取模运算(除运算的余数除运算的余数)+增量运算符增量运算符 -减量运算符减量运算符 Java实用教程 【例【例3.3】测试运算符及表达式,程序输出如图】测试运算符及表达式,程序输出如图3.3所示。源所示。源程序代码如下:程序
30、代码如下:/程序文件称号为程序文件称号为NumberOper.javapublic class NumberOperpublic static void main(String args)/变量初始化变量初始化int a = 30;int b = 30;/定义结果变量定义结果变量int r1,r3,r3,r4,r5,r6,r7,r8,r9;/计算结果计算结果r1 = a + b;Java实用教程r3 = a-b;r3 = a * b;r4 = a / b;r5 = a % b;r6 = a +;r7 = b-;r8 = + a;r9 = - b;/输出结果System.out.println(
31、a = + a + b = + b); /a,b的值System.out.println(a+b = + r1);System.out.println(a-b = + r3);Java实用教程System.out.println(a*b = + r3);System.out.println(a/b = + r4);System.out.println(a%b = + r5);System.out.println(a+ = + r6);System.out.println(b- = + r7);System.out.println(+a = + r8);System.out.println(-b
32、 = + r9); Java实用教程图3.3 程序输出结果Java实用教程3.3.3 关系运算符关系运算符 关系运算符用于比较两个数据之间的大小关系,关系运算关系运算符用于比较两个数据之间的大小关系,关系运算表达式前往布尔值,即表达式前往布尔值,即“真或真或“假。假。Java中的常用关系运算中的常用关系运算符如下:符如下:= =等于等于! =不等于不等于大于大于=大于等于大于等于 b;r4 = a = b;r6 = a b = + r3);System.out.println(a=b = + r5);System.out.println(a=b = + r6); Java实用教程图3.4 程序
33、输出结果Java实用教程3.3.3 布尔逻辑运算符布尔逻辑运算符表表3.3 布尔运算符及规那么布尔运算符及规那么运 算 符 含 义 示 例 规 则 ! 取 反 ! a a为 真 时 , 结 果 为 假 ; a为 假 时 , 结 果 为 真 & 非 简 洁 与 a & b a、 b都 为 真 时 , 结 果 为 真 ; a、 b有 一 个 为 假 时 , 结 果 为 假 | 非 简 洁 或 a | b a、 b有 一 个 为 真 时 , 结 果 为 真 ; a、 b都 为 假 时 , 结 果 为 假 异 或 a b a、 b不 同 真 假 时 结 果 为 真 ; a、 b同 真
34、或 同 假 时 , 结 果 为 假 & 简 洁 与 a & b a、 b都 为 真 时 , 结 果 为 真 ; a、 b有 一 个 为 假 时 , 结 果 为 假 | 简 洁 或 a | b a、 b有 一 个 为 真 时 , 结 果 为 真 ; a、 b都 为 假 时 , 结 果 为 假 Java实用教程例如:Boolean a = false;Boolean b = true; a & b检测到a为假,那么无需判别b的值,直接将值置为假;而b | a时检测到b为真,那么无需判别a的值,直接将值置为真。Java实用教程 【例3.5】测试布尔表达式,程序输出结果如图3.
35、5所示。源程序代码如下:/程序文件称号为TestLogic.javapublic class TestLogicpublic static void main(String args)/变量初始化boolean a = false;boolean b = true;/定义结果变量boolean r1,r3,r3,r4,r5,r6;/计算结果Java实用教程r1 = !a;r3 = a & b;r3 = a | b;r4 = a b;r5 = a & b;r6 = a | b;/输出结果System.out.println(a = + a + b = + b);System.ou
36、t.println(!a = + r1); System.out.println(a&b = + r3);System.out.println(a|b = + r3);System.out.println(ab = + r4);System.out.println(a&b = + r5);System.out.println(a|b = + r6);Java实用教程图3.5 程序输出结果Java实用教程3.3.4 位运算符位运算符Java中的常用位运算符如下:中的常用位运算符如下:位求反位求反&按位与按位与|按位或按位或按位异或按位异或右移右移不带符号右移不带符号右移J
37、ava实用教程位运算符的运用 想要a高8位不变,低8位全变0 a&0 xff00 想要a高8位不变,低8为全变1 a|0 x00ff 想要a高8位不变,低8位求反 a0 x00ff 想要a高8位求反,低8位全为0 (a0 xff00)&0 xff00 想要a的1,3,5,7位取反,3,4,6,8位不变 01010101值为85 所以 a85Java实用教程 【例3.6】测试位运算符,程序输出结果如图3.6所示。源程序代码如下:/程序文件称号为TestBit.javapublic class TestBitpublic static void main(String args)/
38、变量初始化int a = 36;int b = 3;/定义结果变量int r1,r3;Java实用教程/计算结果r1 = a b;r3 = a b = + r1); System.out.println(ab = + r3); Java实用教程图3.6 程序输出结果Java实用教程3.3.5 赋值运算符赋值运算符 赋值运算符分为简单运算符和复杂运算符。简单运算符指赋值运算符分为简单运算符和复杂运算符。简单运算符指“=,而复杂运算符是指算术运算符、逻辑运算符、位运算符,而复杂运算符是指算术运算符、逻辑运算符、位运算符中的双目运算符后面再加上中的双目运算符后面再加上“=。表。表3.4列出列出Jav
39、a常用的赋值常用的赋值运算符及其等价表达式。运算符及其等价表达式。Java实用教程表表3.4 赋值运算符及其等价表达式赋值运算符及其等价表达式运算符 含 义 示 例 等价表达式 += 加并赋值运算符 a += b a = a + b -= 减并赋值运算符 a= b a = a-b *= 乘并赋值运算符 a *= b a = a * b /= 除并赋值运算符 a /= b a = a / b %= 取模并赋值运算符 a %= b a = a % b &= 与并赋值运算符 a &= b a = a & b |= 或并赋值运算符 a |= b a = a | b = 或并赋值
40、运算符 a = b a = a b = 左移并赋值运算符 a = b a = a = 右移并赋值运算符 a = b a = a b = 右移并赋值运算符 a = b a = a b Java实用教程3.3.6 其它操作符及其表达式其它操作符及其表达式 三目运算符三目运算符(?:)相当于条件判别,表达式相当于条件判别,表达式x?y:z用于判别用于判别x能能否为真,假设为真,表达式的值为否为真,假设为真,表达式的值为y,否那么表达式的值为,否那么表达式的值为z。例如:例如:int x = 5;int a = (x3)?5:3;那么那么a的值为的值为5。假设。假设x = 3,那么,那么a的值为的值为
41、3。Java实用教程 对象运算符(instanceof)用来判别一个对象能否属于某个指定的类或其子类的实例,假设是,前往真(true),否那么前往假(false)。 例如: boolean b = userObject instanceof Applet用来判别userObject类能否是Applet类的实例。Java实用教程3.3.7 优先级优先级表表3.5 运算符优先级运算符优先级优先级 含义描述 运 算 符 结合性 1 分隔符 () ; , 2 单目运算、字符串运算 + - + - ! (类型转换符) *右到左 3 算术乘除运算 * / % 左到右 4 算术加减运算 + - 左到右 5
42、移位运算 左到右 6 大小关系运算、类运算 = instanceof 左到右 7 相等关系运算 = = ! = 左到右 8 按位与,非简洁与 & 左到右 9 按位异或运算 左到右 10 按位或,非简洁或 | 左到右 11 简洁与 & 左到右 12 简洁或 | 左到右 13 三目条件运算 ?: *右到左 14 简单、复杂赋值运算 = *= /= %= += = = = &= = |= *右到左 Java实用教程3.4 流流 程程 控控 制制 流程控制分为三种根本构造:顺序构造、分支构造和循环构造。分支构造包括单分支语句(if-else语句)和多分支语句(switch语句)
43、;循环构造包括次数循环语句(for语句)和条件循环语句(while语句)。Java实用教程3.4.1 分支语句分支语句分支语句分为两类:单分支语句和多项选择语句。分支语句分为两类:单分支语句和多项选择语句。1. if-else语句语句if-else语句的根本格式为:语句的根本格式为:if(布尔表达式布尔表达式)语句或块语句或块1;else语句或块语句或块3;Java实用教程 【例3.7】测试if-else语句,假设x10,那么输出x的值,并提示结果正确,否那么输出x= 10,提示结果不正确。程序输出结果如图3.7所示。源程序代码如下:/程序文件称号为TestIf.javapublic clas
44、s TestIf/声明全局变量xstatic int x;public static void main(String args)x = 13;if(x10)Java实用教程 System.out.println(x = + x + 结果正确);else System.out.println(x = 10 + 结果不正确);change();System.out.println(修正x的值之后);if(x10)System.out.println(x = + x + 结果正确);elseSystem.out.println(x = 10 + 结果不正确);Java实用教程/change方法:修
45、正x的值public static void change()x = 5; Java实用教程图3.7 程序输出结果Java实用教程3. switch语句switch语句的根本格式为:switch(表达式1)case 表达式3: 语句或块3; break;case表达式3: 语句或块3; break;case 表达式4: 语句或块4; break;default: 语句或块5; break;Java实用教程其中:(1) 表达式1的值必需与整型兼容。(3) case分支要执行的程序语句。(3) 表达式3、3、4是能够出现的值。(4) 不同的case分支对应着不同的语句或块序列。 (5) break
46、表示跳出这一分支。 Java实用教程 【例3.8】测试switch语句,当x=1、3、3时,分别打印1、3、3,x不为这三个值时,打印x的值。程序输出结果如图3.8所示。源程序代码如下:/程序文件称号为TestSwitch.javapublic class TestSwitchpublic static void main(String args)/声明变量xint x;x = 13; Java实用教程System.out.println(x=13时打印的值);choose(x);x = 3;System.out.println(x=3时打印的值);choose(x);/choose方法:sw
47、itch语句构造public static void choose(int x)switch(x) Java实用教程case 1:System.out.println(1);break;case 3:System.out.println(3);break;case 3:System.out.println(3);break;default:System.out.println(x); Java实用教程图3.8 程序输出结果 Java实用教程3.4.3 for循环语句循环语句for循环语句实现知次数的循环,其根本格式为:循环语句实现知次数的循环,其根本格式为:for(初始化表达式初始化表达式;测
48、试表达式测试表达式;步长步长)语句或块语句或块;Java实用教程 其执行顺序如下: (1) 首先运转初始化表达式。 (3) 然后计算测试表达式,假设表达式为true,执行语句或块;假设表达式为false,退出for循环。 (3) 最后执行步长。 Java实用教程 【例3.9】用for循环统计1100(包括100)之间数的总和。程序输出结果如图3.9所示。源程序代码如下:/程序文件称号为TestFor.javapublic class TestForpublic static void main(String args) int sum = 0; for(int i = 1; i=100; i+
49、)sum += i; System.out.println(1到100(包括100)的数的总和为: + sum);Java实用教程图3.9 程序输出结果Java实用教程3.4.3 while循环语句循环语句 while循环语句实现受条件控制的循环,其根本格式为:循环语句实现受条件控制的循环,其根本格式为: while(布尔表达式布尔表达式) 语句或块语句或块; 当布尔表达式为当布尔表达式为true时,执行语句或块,否那么跳出时,执行语句或块,否那么跳出while循环。循环。Java实用教程上面for循环语句的例子改为while语句后如下所示:int sum = 0;int i = 1;whil
50、e (i=100)sum += i; i+;System.out.println(1到100(包括100)的数的总和为: + sum);Java实用教程3.4.4 do语句语句do语句实现受条件控制的循环,其根本格式为:语句实现受条件控制的循环,其根本格式为:do语句或块语句或块;while(布尔表达式布尔表达式)Java实用教程 先执行语句或块,然后再判别布尔表达式。与while语句不同,当布尔表达式一次都不为true时,while语句一开场判别就跳出循环,不执行语句或块,而在do语句中那么要执行一次。上面那个例子改为do循环为: int sum = 0; int i = 1; do sum
51、 += i; i+; while (i=100); System.out.println(1到100(包括100)的数的总和为: + sum);Java实用教程3种循环构造如何选择,要思索几个要素首先分析业务问题能否是用循环来实现分析业务问题判别我们能否曾经预先知道循环次数假设预先知道循环次数:用for循环假设预先不知道次数:用while循环假设至少要执行一次循环:用do.while循环3种不同的循环构造其实可以相互转化,按照上面的规那么来选择可以简化编程Java实用教程l 跳转语句跳转语句l Break label:在:在switch语句中,语句中,break语句语句用来跳过分支中的其它语句
52、用来跳过分支中的其它语句 ;在循环语句中;在循环语句中,break用来跳出当前的循环语句用来跳出当前的循环语句 l Continue label:continue语句只用于循环构语句只用于循环构造,用来终了本次循环,即跳过循环体中位造,用来终了本次循环,即跳过循环体中位于于continue语句后面的尚未执的语句语句后面的尚未执的语句l Return 表达式:表达式:return语句用于从当前方法语句用于从当前方法中退出中退出 l Label:是目的号,只起到对语句标识的作:是目的号,只起到对语句标识的作用用Java实用教程3.5 数组数组l 数组数组l 数组数组(array)是一样类型变量的集
53、合。是一样类型变量的集合。l 数组变量是援用类型的变量,声明数组变量数组变量是援用类型的变量,声明数组变量并不分配内存空间。并不分配内存空间。l 声明一个数组本质是要确定数组名、数组的声明一个数组本质是要确定数组名、数组的维数和数组元素的数据类型维数和数组元素的数据类型 。Java实用教程3.5.1 一维数组一维数组 一、一维数组定义一、一维数组定义语法格式有两种:语法格式有两种: 数组元素类型数组元素类型 数组名数组名; 或或 数组元素类型数组元素类型 数组名数组名如:如:int intSno或或int intSno intSno:为数组名是符合:为数组名是符合Java标识符定义规那么标识符
54、定义规那么的用户标识符。的用户标识符。Int:表示数组元素的数据类型为整型:表示数组元素的数据类型为整型 方括号方括号:数组的标志:数组的标志 Java实用教程 Java言语中声明数组时不能指定其长度。 int array6; Java实用教程 二、初始化二、初始化 可以经过直接指定初值的方式来完成,也可以用可以经过直接指定初值的方式来完成,也可以用new操作符操作符来完成。来完成。 1直接指定初值的方式直接指定初值的方式 例例 int a1=33,-9,38,8,65; Java实用教程数组a1的初始化a1 0初始值a10访问数组元素整型类数组对象(也称数组对象al或数组a1)引用变量239
55、388651234a11 a12 a13 a14数组元素下标Java实用教程 3用关键字new初始化数组 用关键字new初始化数组,只为数组分配存储空间而不对数组元素赋初值。用关键字new来初始化数组有两种方式: (1) 先声明数组,再初始化数组。格式如下: 类型标识符 数组名 ; 数组名=new 类型标识符数组长度; 其中,第一条语句是数组的声明语句,第二条语句是初始化语句。int a ;a=new int9;Java实用教程 (3) 在声明数组的同时用new关键字初始化数组。格式如下: 类型标识符 数组名 =new 类型标识符数组长度; 或 类型标识符 数组名=new 类型标识符数组长度;
56、例如:int a=new int10;Java实用教程新创建的数组对象,其元素根据类型被设置为默许的初始值。数值类型为0字符类型为u0000布尔类型为false援用类型为null每个数组都有一个属性length获取它的长度,例如:a.length 指明数组a的长度(元素个数);Java实用教程三、数组元素援用三、数组元素援用 数组名数组名数组下标数组下标 其中:数组下标的取值从其中:数组下标的取值从0开场,下标值可以开场,下标值可以是整数型常量或整数型变量表达式。是整数型常量或整数型变量表达式。对对intSno数组来说下面两条赋值语句是合法的数组来说下面两条赋值语句是合法的: intSno4=
57、33; intSno3+3=86; 但但intSno6=13;是错误的。是错误的。Java实用教程加强的for循环(JDK 1.5)JDK 1.5引入一个新的for循环,可以不用下标就可以依次访问数组元素。语法:for(elementType value : arrayRefVar) 例如for(int i = 0; i myList.length; i+) sum += myListi;for(double value : myList) sum += value;Java实用教程【例如程序c6_1.java】 数组的声明、初始化和其长度的测定。public class c6_1 publi
58、c static void main(String arg ) int i; double a1 ;/ 放在变量后面声明 char a3; / 放在变量前面声明 a1=new double8;/为a1分配8个double型元素的存储空间(64字节) a3=new char8; /为a3分配8个char型元素的存储空间(16字节)Java实用教程int a3 =new int8;/在声明数组时初始化数组, 为a3分配33字节 byte a4=new byte8; /在声明数组时初始化数组,为a4分配8字节 char a5 =A,B,C,D,E,F,H,I;/直接指定初值方式 /下面各句测定各数组
59、的长度Java实用教程/以下各句援用数组中的每一个元素,为各元素赋值 for(i=0;i8;i+) a1i=100.0+i; a3i=i; a3i=(char)(i+97);/将整型转换为字符型 System.out.println(a1.length=+a1.length); System.out.println(a3.length=+a3.length); System.out.println(a3.length=+a3.length); System.out.println(a4.length=+a4.length); System.out.println(a5.length=+a5.l
60、ength);Java实用教程 /下面各句打印各数组元素 System.out.println(ta1ta3ta3ta4ta5); System.out.println(tdoubletchartinttbytetchar); for(i=0;i8;i+) System.out.println(t+a1i+t+a3i+t+ a3i+t+a4i+t+a5i); Java实用教程该程序的运转结果如下:a1.length=8a3.length=8a3.length=8a4.length=8a5.length=8Java实用教程a1 a3 a3 a4 a5double char int byte char100.0 a 0 0 A101.0 b 1 0 B103.0 c 3 0 C103.0 d 3 0 D104.0 e 4 0 E10
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子计算机外部设备及装置项目筹资方案
- 车辆管理制度
- 《角蛋白及其水解物》团体标准 征求意见稿
- 《喜看稻菽千重浪 记首届国家最高科技奖获得者袁隆平》袁隆平的农业科技成果的推广渠道课件
- 专科网络运维考试题目及答案
- 学校图书管理制度试题及答案
- 药品不良反应监测制度及流程
- 药品监管三基三严考试题库及答案
- 药品企业原料进货查验记录制度
- 医疗废物规范化管理专项考核试题及答案
- 儿童青少年心理健康知识讲座
- 2025年广东省中考物理试题卷(含答案)
- 航运企业合规管理制度
- 2026年高考语文备考之非连续性文本阅读训练(人工智能、科技文化)
- 幼儿园伙食费管理制度
- 月结60天合同协议书
- 肉羊高效健康养殖与疫病防控技术培训
- 养老院食品安全培训
- 全球核安全形势课件
- 《婴幼儿常见病识别与预防》高职早期教育专业全套教学课件
- 《智能制造基础与应用》课件全套 第1-8章 绪论、智能制造数字化基础- 智能制造应用
评论
0/150
提交评论