Presentation is loading. Please wait.

Presentation is loading. Please wait.

第2章 Java语言基础 2.1 标识符 2.2 变量和常量 2.3 基本数据类型 2.4 赋值语句 2.5 运算符和表达式

Similar presentations


Presentation on theme: "第2章 Java语言基础 2.1 标识符 2.2 变量和常量 2.3 基本数据类型 2.4 赋值语句 2.5 运算符和表达式"— Presentation transcript:

1

2 第2章 Java语言基础 2.1 标识符 2.2 变量和常量 2.3 基本数据类型 2.4 赋值语句 2.5 运算符和表达式
2.6 流程控制语句 2.7 程序注释 2.8 数组 2.9 字符串 《Java程序设计实用教程》朱战立

3 2.1 标识符 Java语言的字符使用Unicode字符集。Unicode字符集中的每个字符为16位编码
标识符是由字母、数字、下划线(_)、美元符($)组成的、必须以字母、下划线或美元符开头的、字符个数有限的字符序列。如i、count、myStack、GetValue、_length等 标识符可以用来命名变量名、常量名、类名等 有固定含义的标识符称作关键字。用户不允许用关键字定义标识符。如for、if等 《Java程序设计实用教程》朱战立

4 2.2 变量和常量 2.2.1 变量 2.2.2 常量 《Java程序设计实用教程》朱战立

5 2.2.1 变量 变量是一个保存数据的内存区域的名字。变量必须先声明,然后才能使用
变量声明是指示编译器为特定数据类型的数值保存分配适当的内存空间 变量声明的格式为: <数据类型名> <变量名表>; 变量的使用范围称作变量的作用域。变量的使用范围是定义该变量的程序块 《Java程序设计实用教程》朱战立

6 2.2.2 常量 在整个程序运行期间保持不变的量称作常量。或者说,常量是数值不变化的量
定义常量的方法是在定义变量的语句最前面加上关键字final。例如,   final int MAXSIZE = 100; 《Java程序设计实用教程》朱战立

7 2.3 基本数据类型 数据类型规定了一类数据的数据位长度(或称字符个数)、取值范围以及对该类数据所能进行的操作
Java语言定义的8种基本数据类型及相应的关键字如下: 整型: byte 、short、 int、 long 浮点型:float、double 逻辑型:boolean 字符型:char 《Java程序设计实用教程》朱战立

8 1. 整型 byte 、short、 int、 long整型只是数据的范围不同 整型数可以表示为十进制、八进制或十六进制:
1. 整型 byte 、short、 int、 long整型只是数据的范围不同 整型数可以表示为十进制、八进制或十六进制: 十进制:用若干个0~9之间的数字表示,并规定首位不能为0。如123,-100。 八进制:以0打头,后跟若干个0~7之间的数字。如0123。 十六进制:以0x或0X打头,后跟若干个0~9之间的数字以及a~f之间的小写字母或A~F之间的大写字母,a~f或A~F分别表示数值10 ~15。如0X123E 《Java程序设计实用教程》朱战立

9 2. 浮点型 float和double型数只是数据位(或数值范围)不同 浮点型数由整数部分和小数部分组成。浮点数有两种表示方式:
2. 浮点型 float和double型数只是数据位(或数值范围)不同 浮点型数由整数部分和小数部分组成。浮点数有两种表示方式: 标准记数法:由整数部分、小数点和小数部分构成。如 ,123.0 科学记数法:由整数、小数点、小数和指数部分构成,指数部分由一个e或E后跟带正负号的整数表示。如 用科学记数法可表示为 E+2 规定:未明确定义的浮点型都隐含为double型。若要将一个浮点型明确地表示为float型时,需在后面加F或f,如 F或 E+2f 《Java程序设计实用教程》朱战立

10 3. 逻辑型 逻辑型用来定义保存逻辑值的变量 逻辑型也称为布尔型 逻辑值只有真(true)和假(false)两个值。
3. 逻辑型 逻辑型用来定义保存逻辑值的变量 逻辑型也称为布尔型 逻辑值只有真(true)和假(false)两个值。 所有逻辑运算(如a<b)的运算结果值都是逻辑值,如当a = 4,b = 6时,逻辑运算a<b的结果值就是true 《Java程序设计实用教程》朱战立

11 4. 字符型 一个Unicode标准下的编码称作一个字符 Unicode标准用16位编码表示一个字符。如’a’、’A’、’#’等都是字符型
4. 字符型 一个Unicode标准下的编码称作一个字符 Unicode标准用16位编码表示一个字符。如’a’、’A’、’#’等都是字符型 一些控制字符不能在屏幕上直接显示,使用转义字符的表示方法 《Java程序设计实用教程》朱战立

12 2.4 赋值语句 赋值语句的语法形式:<变量> = <表达式>; 类型相同。可正确赋值。例如:
int smallValue =100; long bigValue = 100L; 类型兼容。可正确赋值。例如: long bigval = 100; double x = F; 类型不兼容。编译时会出错。例如: int smallValuel = 100L; //100L是long类型 float x = ; //12.345是double类型 《Java程序设计实用教程》朱战立

13 2.5 运算符和表达式 Java语言在基本关键字、运算符、表达式、赋值语句、流程控制语句等和C/C++基本相同 2.5.1 运算符及其分类
2.5.2 运算符的优先级 2.5.3 表达式 《Java程序设计实用教程》朱战立

14 2.5.1 运算符及其分类 Java的运算符可分为4类: 算术运算符 关系运算符 逻辑运算符 位运算符 《Java程序设计实用教程》朱战立

15 1.算术运算符 一元运算符。有+、-、++、--。例如, int i=6,j,k,m,n; k = -i; m = i++;
二元运算符。有+、-、*、/、% a%b的计算公式为:a % b = a - (a / b) * b 7 / 3 //整除,运算结果为2 7.0 / 3 //除法,运算结果为 7 % 3 //取余,运算结果为1 7.0 % 3 //取余,运算结果为1.0 《Java程序设计实用教程》朱战立

16 2. 关系运算符 用于比较两个数值之间的大小,其运算结果为一个逻辑类型的数值
2. 关系运算符 用于比较两个数值之间的大小,其运算结果为一个逻辑类型的数值 关系运算符有六个:= = 、! = 、> 、> = 、 < 、< = 。例如: 9 <= 8 //运算结果为false 9.9 >= 8.8 //运算结果为true ‘A’ < ‘a’ //运算结果为true 《Java程序设计实用教程》朱战立

17 3. 逻辑运算符 逻辑运算符要求操作数的数据类型为逻辑型,其运算结果也是逻辑型值。逻辑运算符有:&&、||、! 、^、&|
3. 逻辑运算符 逻辑运算符要求操作数的数据类型为逻辑型,其运算结果也是逻辑型值。逻辑运算符有:&&、||、! 、^、&| &&和&的运算规则基本相同。区别是:&和 | 运算是把逻辑表达式全部计算完,而&&和 || 运算具有短路计算功能 所谓短路计算,是指系统从左至右进行逻辑表达式的计算,一旦出现计算结果已经确定的情况,则计算过程即被终止。例如,有如下逻辑表达式: (i>=1) && (i<=100) 《Java程序设计实用教程》朱战立

18 4. 位运算符 位运算是以二进制位为单位进行的运算,其操作数和运算结果都是整型值。位运算符有:&、|、~、^、>>、<<、>>>。例如: int x = 64; //x等于二进制数的 int y = 70; //y等于二进制数的 int z = x&y //z等于二进制数的 int x = 70; //x等于二进制数的 int y = 2; int z = x>>y //z等于二进制数的 《Java程序设计实用教程》朱战立

19 5. 其他运算符 条件运算符(?:) 语法为:表达式1〉?〈表达式2〉:〈表达式3〉
5. 其他运算符 条件运算符(?:) 语法为:表达式1〉?〈表达式2〉:〈表达式3〉 运算方法:先计算〈表达式1〉的值,当〈表达式1〉的值为true时,则将〈表达式2〉的值作为整个表达式的值;当〈表达式1〉的值为false时,则将〈表达式3〉的值作为整个表达式的值。如: int a=1,b=2,max; max = a>b?a:b; //max等于2 强制类型转换符。将一个表达式的类型强制转换为某一指定数据类型。语法形式为: (〈类型〉) 〈表达式〉 《Java程序设计实用教程》朱战立

20 2.5.2 运算符的优先级 教材中的表2.8按优先级从高到低的次序列出Java语言中的所有运算符
表中结合性一列中的“左右”表示其运算次序为从左向右,“右左”表示其运算次序为从右向左 《Java程序设计实用教程》朱战立

21 2.5.3 表达式 用运算符和圆括号把运算对象连接起来的、符合Java语言语法规则的式子称作表达式。有算术表达式、关系表达式、逻辑表达式、位表达式。 如: int i=5; (i<0)&(i>100) //结果为boolean型 (i-2)*8+5 //结果为int型 “Abcde”+“12345” //结果为String型 《Java程序设计实用教程》朱战立

22 2.6 流程控制语句 2.6.1 分支语句 2.6.2 循环语句 2.6.3 break语句和continue语句
2.6.4 return语句 《Java程序设计实用教程》朱战立

23 2.6.1 分支语句 分支结构是指程序按照当前的分支条件控制程序流程的执行。有:if语句和switch语句
《Java程序设计实用教程》朱战立

24 1. if语句 (1) 基本的if 语句 if (〈逻辑表达式〉 ) 〈语句组1〉; [else 〈语句组2〉;]
if (n >= 1) { if (n <= 100) …… } else …… 《Java程序设计实用教程》朱战立

25 2. switch语句 switch语句是多个分支的流程控制语句。语法为: switch (〈表达式〉) {
case〈常量1〉:〈语句组1〉; [break;] case〈常量2〉:〈语句组2〉; ……; [default:〈语句组〉] } 《Java程序设计实用教程》朱战立

26 3. switch语句中的break语句 switch语句本身并不能保证执行完一组case后的语句或语句组后,跳过随后的case判断,通常情况下,此时需要用break语句来跳过随后的case语句 break语句的语法形式是:break; switch语句中的break语句的语义是:跳过break语句所在位置随后所有的case语句,即结束switch语句的执行 《Java程序设计实用教程》朱战立

27 1. for语句 for语句的语法形式为: 〈循环体〉; 例 求1到10累加和 for(i = 1; i <= n; i++)
sum = sum + i; 说明:无论是〈表达式1〉还是〈表达式2〉或者是〈表达式3〉,都可以任选 《Java程序设计实用教程》朱战立

28 2. while语句 while语句的语法形式为: while (〈逻辑表达式〉) 〈循环体〉; 求1到10累加和
int i = 1,n = 10,sum = 0; while (i <= n) { sum = sum + i; i++; } 《Java程序设计实用教程》朱战立

29 3. do-while语句 语法形式为: do { 〈语句组〉; } while (〈逻辑表达式〉) ;
do-while语句和while语句的惟一差别是:do-while语句至少执行一次循环体(因其结束条件判断在后面进行);而对于while语句来说,当一开始循环条件就不满足时,循环体将一次也不执行 《Java程序设计实用教程》朱战立

30 4. 多重循环 如果循环语句的循环体内又有循环语句,则构成多重循环结构。多重循环结构中的循环语句,可以是前面讨论过的for语句、while语句或do-while语句中的任何一种 当应用问题复杂时,程序一般需要有多重循环结构,此时最重要的是要把程序设计的思路梳理清楚,而其中的每一重循环结构都可以按单重循环结构设计 《Java程序设计实用教程》朱战立

31 例 求1到10累加和 int i = 1,n = 10,sum = 0; while (i <= n) {
sum = sum + i; i++; } 和for语句相比,while语句循环中的循环变量赋初值(i = 1)、循环过程结束判断(i <= n)和循环变量修改(i++)三个部分都有,只是放在了不同的地方 《Java程序设计实用教程》朱战立

32 2.6.2 循环语句 循环结构是指程序按照当前的循环条件控制程序流程的执行
Java语言有三种循环结构的语句:for语句、while语句和do-while语句 这三种循环语句虽然控制循环的方式不同,但实现循环的功能相同。换句话说,对于任何一个循环问题,这三种循环语句都可以实现。但是,不同的循环问题,使用这三种循环语句的简便程度不同。因此,一个好的程序设计者,应该学会针对不同的循环问题,选择最简便的循环语句 《Java程序设计实用教程》朱战立

33 2.6.3 break语句和continue语句 break语句通常是和switch语句或循环语句配合使用,continue语句通常是和循环语句配合使用。 break语句 continue语句 《Java程序设计实用教程》朱战立

34 1. break语句 break语句的语法形式是:break; 在循环语句中,break语句的功能是跳出循环体
《Java程序设计实用教程》朱战立

35 2. continue语句 continue语句的语法形式为: continue;
continue语句主要用于循环语句中,continue语句的语义是:若循环体中遇到continue语句,则本次循环体的后续语句被忽略,回到循环条件判断处,判断是否执行下一次循环体。换句话说,continue语句仅跳过当前层循环体的剩余语句 《Java程序设计实用教程》朱战立

36 2.6.4 return语句 return语句的语法形式为: return [<返回值>];
语义是:使函数返回原调用处,且带回返回值。如果函数为void类型,则return语句后没有<返回值>;如果函数为非void类型,则return语句后需要有<返回值>,并且<返回值>的类型必须和函数的类型一致。 当return语句不带<返回值>,并且位于函数的最后时,return语句可以省略 《Java程序设计实用教程》朱战立

37 2.7 程序注释 Java语言有三种形式的注释: 单行注释 // 注释内容 多行注释 /* …… 文件注释 多行注释内容 */ /**……
文件注释内容 《Java程序设计实用教程》朱战立

38 2.8 数组 数组是连续内存单元中一组名字和数据类型相同的数据元素的有限集合。数组可以用来保存和处理一组数据类型相同的数据元素。数组中的每个数据元素称作一个数组元素 2.8.1 一维数组 2.8.2 二维数组 2.8.3 不规则的二维数组 《Java程序设计实用教程》朱战立

39 2.8.1 一维数组 一维数组的使用分三步:定义一维数组变量、为数组分配内存单元和使用数组元素。 1. 一维数组变量定义
1. 一维数组变量定义 一维数组变量定义的语法形式为: 〈数据类型〉〈数组名〉[]; 或 〈数据类型〉[]〈数组名〉; 例如, int[] a; 《Java程序设计实用教程》朱战立

40 2. 为数组分配内存单元 语法形式为: 〈数组名〉 = new 〈数据类型〉[〈长度〉]; 例如, a = new int[5];
2. 为数组分配内存单元 语法形式为: 〈数组名〉 = new 〈数据类型〉[〈长度〉]; 例如, a = new int[5]; new运算符的语义是:向系统申请指定数据类型所需的内存单元空间,并返回所申请内存单元的首地址 在数组分配内存单元后,系统将自动给每个数组元素赋初值。并规定:数值类型的数组元素初值为0,逻辑类型的数组元素初值为false,类类型的数组元素初值为null 《Java程序设计实用教程》朱战立

41 3. 使用数组元素 一旦完成了定义数组变量和为数组分配内存单元后,就可以使用数组中的任意数组元素。数组元素由数组名、一对方括号、方括号中的整数数值(一般称作下标)组成。其中下标指出了希望操作的数组元素位置。下标由0开始,其最大值为用new运算符分配内存单元时规定的长度值减1。例如, a[0] = 10; 《Java程序设计实用教程》朱战立

42 一维数组示意图 《Java程序设计实用教程》朱战立

43 4. 引用类型 由一维数组示意图 可知,数组名表示的是系统为该数组分配内存单元的首地址。这样的数据类型称为引用类型 设有下列语句段:
4. 引用类型 由一维数组示意图 可知,数组名表示的是系统为该数组分配内存单元的首地址。这样的数据类型称为引用类型 设有下列语句段: int[] a; int x; a = new int[5]; a[0] = 10; x = 10 + a[0]; x = 10 + a; //错误,不兼容的类型 《Java程序设计实用教程》朱战立

44 5. 数组的简化使用方法 数组的定义和为数组分配内存空间两步可以结合起来。例如, int a[] = new int[ 5];
5. 数组的简化使用方法 数组的定义和为数组分配内存空间两步可以结合起来。例如, int a[] = new int[ 5]; 数组元素的初始化赋值也可以和上述语句结合在一起完成,此时采用简写形式。例如, int a[] = {1,2,3,4,5}; 《Java程序设计实用教程》朱战立

45 6. 数组的长度 Java语言提供了length成员变量返回数组元素的个数,其使用方法为: 〈数组名〉.length 例如, int n;
6. 数组的长度 Java语言提供了length成员变量返回数组元素的个数,其使用方法为: 〈数组名〉.length 例如, int n; int a[] = new int[ 10]; n = a.length; //n等于10 《Java程序设计实用教程》朱战立

46 7. 数组长度的重新定义 一旦为数组规定了长度,在程序中使用数组时就不能超过所规定的长度,否则编译时会给出“数组下标越界”的语法错误
7. 数组长度的重新定义 一旦为数组规定了长度,在程序中使用数组时就不能超过所规定的长度,否则编译时会给出“数组下标越界”的语法错误 上述情况下,可以用new运算符重新为数组分配内存单元。例如, a[] = new int[5]; a = new int[ 10]; a[8] = 100; 《Java程序设计实用教程》朱战立

47 2.8.2 二维数组 二维数组的使用也分三步:定义数组变量、为数组分配内存单元和使用数组元素 。如: int a[][];
a = new int[3][3]; a[0][0] = 10; 或 int a[][] = new int[3][3]; 或 int a[][] = {{1,2,3},{4,5,6},{7,8,9}}; 《Java程序设计实用教程》朱战立

48 2.8.3 不规则的二维数组 可以把二维数组中的每个一维数组定义为不同的元素个数,这样就可以构成不规则的二维数组。
具体设计方法是:先定义一个二维数组变量,并指定第一维的元素个数,然后再分别为第二维数组(即第一维数组的每个数组元素)分配不同的内存单元。由于此时是分别为第二维数组分配内存单元,并且第二维数组所分配的内存单元个数可以是不相同的,因此就构成了不规则的二维数组 《Java程序设计实用教程》朱战立

49 不规则二维数组举例 例如 int twoDim [][] = new int [4][]; //定义二维数组,并指定第一维的元素个数
《Java程序设计实用教程》朱战立

50 不规则二维数组示意图 《Java程序设计实用教程》朱战立

51 2.9 字符串 字符串是n(n≥0)个字符组成的序列。如"abc"就是一个长度为3、其值为abc的字符串
Java中的字符串变量用String来定义 (1)字符串常量。一对双引号括起来的任何字符序列都是一个字符串常量,如""和"sum" 都是字符串常量 (2)字符串变量。下面语句定义了两个字符串变量str1和str2: String str1, str2; 或: String str = "abc"; 或: String[] v = new String[3]; 《Java程序设计实用教程》朱战立

52 2.9 字符串 (3)字符串变量名。和数组名一样,字符串变量名也是引用类型,即字符串变量名是指向内存中一片连续内存单元的首地址。
(4)字符串的赋值。字符串变量定义后可以给该变量赋值。例如: String str; str = "abc"; 或: String str = "abc"; (5)字符串的连接运算。例如: String str = "abc" + "def"; 《Java程序设计实用教程》朱战立

53 2.9 字符串 (6)标准输出中的字符串 前面已经多次使用了系统的标准输出System.out.print()和System.out.println()。这两个输出语句要求的参数是字符串或字符串表达式。例如, String str = "abc"; System.out.print("def"); System.out.print(str); System.out.print(str + "def"); 都是合法的输出语句 《Java程序设计实用教程》朱战立


Download ppt "第2章 Java语言基础 2.1 标识符 2.2 变量和常量 2.3 基本数据类型 2.4 赋值语句 2.5 运算符和表达式"

Similar presentations


Ads by Google