2 Java语言基础 (数据运算与流程控制)
2.0 本章介绍 数据类型、变量与常量 运算符与表达式 流程控制语句
2.1 数据类型、变量与常量 Java中的数据类型分为两大类,一类是基本数据类型(primitive types) 另一类是引用类型( reference types )。后者相当于对象。 整数类型(byte, short, int, long) 数值型 浮点类型(float, double) 基本数据类型 字符型(char) 数据类型 布尔型(boolean) 类(class) 引用数据类型 接口(interface) 数组
2.1 数据类型、变量与常量 Java中定义了四类/八种基本数据类型 整数型---- byte, short, int, long 浮点数型---- float, double 逻辑型---- boolean 字符型---- char 字符数据是用单引号括起来的单个字符 char c = 'A'; Java字符采用Unicode编码,每个字符占两个字节,因而可用十六进制编码形式表示 char c1 = '\u0061'; boolean类型数据适于逻辑运算,一般用于程序流程控制 . boolean类型数据只允许取值true或false,不可以0或非0的整数替代true和false。
2.1 数据类型、变量与常量 Java各整数类型有固定的表数范围和字段长度,而不受具体操作系统的影响,以保证Java程序的可移植性 : 类 型 占用存储空间 表数范围 byte 1字节 -128 ~ 127 short 2字节 -215 ~ 215-1 int 4字节 -231 ~ 231-1 long 8字节 -263 ~ 263-1 类 型 占用存储空间 表数范围 float 4字节 -3.403E38~3.403E38 double 8字节 -1.798E308~1.798E308 Java浮点类型有固定的表数范围和字段长度
标识符 任何一个变量、常量、方法、对象和类都需要有名字,这些名字就是标识符。标识符可以由编程者自由指定,但是需要遵循一定的语法规定。 标识符要满足如下的规定: (1)标识符可以由字母、数字和下划线(_)、美元符号($)组合而成; (2)标识符必须以字母、下划线或美元符号开头,不能以数字开头。 在实际应用标识符时,应该使标识符能一定程度上反映它所表示的变量、常量、对象或类的意义,这样程序的可读性会更好。 同时,应注意Java是大小写敏感的语言。
常量 整型常量: Java语言整型常量的三种表示形式. 十进制整数,如12, -314, 0。 八进制整数,要求以0开头,如012 十六进制数,要求0x或0X开头,如0x12 字符常量: 字符常量是用单引号括起来的一个字符,如’1’、’F’、’ %’等,而“1”、“F”、“%”
浮点型常量 Java浮点类型常量有两种表示形式 十进制数形式,必须含有小数点,例如: 3.14 314.0 .314 科学记数法形式,如 3.14e2 3.14E2 314E2 Java浮点型常量默认为double型,如要声明一个常量为float型,则需在数字后面加f或F,如: double d = 3.14; float f = 3.14f;
常量(常变量) 前面的常量实际上是常数值。 在Java中的常量通常指标识符常量,也就是使用final关键字修饰的变量,其定义格式为: final type name=value; 下面是两个常量的定义。 public static final float fPI=3.1415926f; public final double dPI=3.1415926d;
变量 变量是在程序运行过程中可以改变的量,是Java程序中的基本存储单元,程序设计人员在程序中使用变量来临时保存数据。
基本数据类型变量声明和赋值 实例 public class Test { 基本数据类型变量声明和赋值 实例 public class Test { public static void main (String args []) { boolean b = true; //声明boolean型变量并赋值 int x, y=8; // 声明int型变量 float f = 4.5f; // 声明float型变量并赋值 double d = 3.1415; //声明double型变量并赋值 char c; //声明char型变量 c = '\u0031'; //为char型变量赋值 x = 12; //为int型变量赋值 }
2.2 运算符与表达式 算术运算符: +,―,*,/,%,++,―― 关系运算符: >,<,>=,<=,==,!= 2.2 运算符与表达式 算术运算符: +,―,*,/,%,++,―― 关系运算符: >,<,>=,<=,==,!= 逻辑运算符: !,& , | , ^ , &&,|| 位运算符: &,|,^,~ , >>,<<,>>> 赋值运算符: = 扩展赋值运算符:+=,―=,*=,/= 字符串连接运算符: +
2.3 流程控制语句 分支语句if-else 多重分支语句switch-case-break 循环语句while,do-while,for 转移语句break,continue,label 返回语句return 例外处理语句try-catch-finally
1.分支结构 if语句的语法格式是: If (boolexpression1) if (boolexpression) 语句块1; el se 语句块2; If (boolexpression1) 语句块1; el se if (boolexpression2) 语句块2; …… el se if (boolexpressionN) 语句块n; el se 语句块n+1; switch(expression) { case value1:语句块1;break; case value2:语句块2 ;break; case valuen:语句块n ;break; default:语句块n+1 ; }
程序三种流程的比较
} while(booleanexpression); 2 . 循环结构 While循环 while语句的语法格式如下: while (booleanexpression) { 语句块; } do-while语句的语法结构如下: do { 语句块; } while(booleanexpression); for循环: for(expression1;booleanexpression2; expression3) { 语句块; }
循环的三种结构 TradeElement.java TestDoWhile.java SumofFactorial.java
3. 跳转语句 continue语句 短路语句 作用是终止当前这一轮的循环,跳过本轮剩余的语句,直接进入下一轮 循环 break语句 3. 跳转语句 continue语句 短路语句 作用是终止当前这一轮的循环,跳过本轮剩余的语句,直接进入下一轮 循环 break语句 断路语句 break语句的作用是使程序的流程从一个语句块内部跳转出来 return语句 使程序流程从方法调用中返回,表达式的值就是调用方法的返回值
例题 产生一个随机整数number,求小于number的所有质数。 求99的最大真约数。 验证100以内的哥德巴赫猜想,每个不小于6的偶数都可以表示为两个奇素数之和。
作业: 简答题 (1)Java的逻辑运算符&与&&,|与||有什么区别? (2)Java的整型数据有几种,各占用多少位的宽度?Java的浮点数据类型有几种,各占用多少位的宽度? (3)什么是强制类型转换?在什么情况下需要用到强制类型转换? (4)使用switch语句实现多路分支时,需要注意哪些问题?
作业: (1)编写方法char change(char c),其功能是对参数c进行大小写转换:如果c是大写字母,则将它转换成小写字母;如果c是小写字母,则将它转换成大写字母;如果c不是字母,则不转换。 (2)编写并测试方法static int gcd(int m,int n)和static int lcm(int m,int n)方法的功能是求两个整数的最大公约数和最小公倍数。 (3)编写并测试方法reversi(int x),输入一个整数,将各位数字反转后输出。 (4)编写程序求12-22+32-42+…+972-982+992。
array 1, 3, 7, -23, 34, 0, 23, 2, 9, 7, 78 temp: i: i<array.length/2 j:
意见反馈 k:6 sum:0 i<6 i:3 t:6 j<i(3) j:1