




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、授课教师: 王诚,Java数据处理与流程控制,2,目 标,数据类型 运算符号 流程控制 数组,3,变量,特性 名称:标识符,代表这块内存中的数据。 类型:根据所存储的数据类型的不同,有各种不同类型的变量。 初始值:为其赋值或者是保留缺省值,变量在使用前必须先初始化。 作用域 : 在不同程序块中的可用性及生命周期 int x=0,y; y=x+3;,在程序执行期间可根据需要经常变化的值。,4,Java中两大数据类型 基本数据类型:也称作内置类型,Java语言本身提供的基本数据类型,是其他类型(包括Java核心库和用户自定义类型)的基础。 例如:boolean , char , String 等
2、引用数据类型:Java语言根据基本类型扩展出的其他类型。 例如: class , interface 等,变量,5,java的变量类型,6,Java 基本数据类型,Java type system,primitive,reference,null,char,numeric,boolean,class,interface,array,integral,floating-point,byte,short,int,long,float,double,7,基本数据类型的取值范围,8,基本数据类型之间的转换,当把一个long类型的变量赋值给int类型时,int可能存不下那么大的数。所以编译器不允许把lo
3、ng变量赋值给int变量 但是反之可以 除boolean类型外,所有的原始数据类型因为各自的精度不同,赋值时都要考虑这个问题,9,基本数据类型之间的转换,自动类型转换(隐式类型转换) byte b = 3; int x = b; /b自动转换成int型,强制类型转换(显示类型转换) byte a; int b; a = (byte) b; / 强制转换 强转时,当心丢失数据或失真,10,基本数据类型之间的转换,相同类型的变量、常数运算,结果还是原类型 不同类型的变量、常数运算,结果的类型为参与运算的类型中精度最高者 表达式的数据类型自动提升规则 byte,short,char型的值被提升int
4、型 其中一个操作数为long型,结果为long型 其中一个操作数为float型,结果为float型 其中一个操作数为double型,结果为double型,11,基本数据类型之间的转换,案例说明: byte b = 50; char c = a; short s = 1024; int i = 50000; float f = 5.67f; double d = .1234; result = (f * b) + ( i/c )-( d * s ); 请问result是什么类型? 案例分析 System.out.println(a+1); System.out.println(“”+a+1);
5、以上两条语句打印结果是什么?,12,运算符,运算符是一种特殊符号,用以表示数据的运算、赋值和比较,一般由一至三个字符组成 。 运算符共分以下几种 算术运算符 赋值运算符 比较运算符 逻辑运算符 位运算符,13,算术运算符,14,算术运算符,加减乘除四则运算 +,-,*,/,% 如 :12%5 = 2 整数之间相除,只保留整数部分 如: 3510/1000*1000 = 3000 如果对负数取模,可以把模数负号忽略不记 如:5%-2=1。但被模数是负数就另当别论了 负号:- x = -a; x = a * (-b);,15,运算优先级,a = x + y - 2/2 + z; a = x + (
6、y - 2)/(2 + z); 优先级系统比较复杂,死记硬背有损脑细胞。用括号来解决一切问题,16,赋值运算符,赋值运算符 (=) 用于为变量赋值,17,比较运算符,关系运算符用于测试两个操作数之间的关系。 关系表达式将返回一个布尔结果。,注1:比较运算符的结果都是boolean型,也就是true/false。 注2:比较运算符“=”不能误写成“=” ,切记!切记!,18,逻辑运算符,逻辑运算符与布尔操作数一起使用,“=0000,0001 int b = 10;=0000,0000,0000,0000,0000,0000,0000,1010 a =1; =0000,0000,0000,0000
7、,0000,0000,0000,0001 a =0000,0000,0000,0000,0000,0000,0000,0000 3、移位运算 :将一个数的各二进制位全部右移若干位,最高位则移入原来最高位的值(正数补0,负数补1)。 :将一个数的各二进制位全部右移若干位,最高位补0;,位运算,22,运算符的优先级,23,三元运算符 (?:),三元运算符 (? :) 可以替代 if-else 结构,class TernaryOp public static void main(String args) int salary,daysPresent = 30; salary = daysPresen
8、t = 20 ? 2000 : 3000; System.out.println(您本月薪资为 $+salary); ,24,Instanceof 运算符,class InstanceOfDemo public static void main (String args ) InstanceOfDemo t = new InstanceOfDemo( ); if (t instanceof InstanceOfDemo) System.out.println (T是InstanceOfDemo 的实例); else System.out.println (T不是InstanceOfDemo 的
9、实例!); ,可以确定对象是否属于一个特定的类,25,控制结构,选择 if-else Switch 循环 while do-while for,Java 支持下列控制结构:选择、循环、跳转,跳转 break Continue,26,if-else 选择语句,if-else 结构的语法为:,if (条件) 语句1; else 语句2;,if (条件) 语句组; else 语句组; ,if和else块中只有一条语句,if和else块中有多条语句,if (条件1) 语句1; else if (条件2) 语句2; else if (条件m) 语句 m; else 语句n; ,27,if (i 10)
10、return i * 100; else return i * 10; 以上代码片断等效于:return i 10 ? i * 100 : i * 10;,if-else 选择语句,28,switch 选择语句,switch 结构的语法为:,switch(表达式) case 常量值 1: 语句(组); break; case 常量值 2: 语句(组); break; case 常量值 N: 语句(组); break; default: 语句(组); ,表达式必须为byte,short,int或char类型,常量值必须是与表达式类型兼容的特定的一个常量 不允许有重复的case值,default子
11、句为可选,29,while 循环 while(条件) 语句组; do-while循环 do 语句组; while(条件); for 循环 for(变量初始化; 循环条件表达式; 递增或递减变量的值) 语句组; ,循环语句,“初始化”和“循环条件表达式”部分可以使用逗号来执行多个操作 如果三个部分都为空语句(分号不能省),相当于一个无限循环,“当型”循环,先判断条件再执行,“直到型”循环,先执行再判断条件,也就是说,至少可以执行一次 在while(条件)后面的分号不要忘,30,循环语句,使用规则 while 适合于开始不清楚循环将要进行的次数,而且循环可能一次都不进行的情况 do-while 适
12、合于不清楚循环次数,但是循环肯定要进行一次的情况 for 适合于预先知道循环将要进行的次数的情况 一定程度上他们是可以互相替换的,31,break和continue,break 语句在循环中用于立即从当前循环终止控制。 遇到 break 语句时,将跳出当前循环。 continue 语句则是从其调用处跳至循环的开始处。 continue 语句之后的语句将不再执行。,32,Return 返回语句,Return语句从当前方法退出,返回到调用该方法的语句处,并从紧跟该语句的下一条语句继续执行程序。 返回语句的两种格式: 1、return expression 返回一个值给调用该方法的语句。 返回值的数
13、据类型必须和方法声明中的返回值类型一致或是精度低于声明的数据类型。 2、return 当方法声明中用void声明返回类型为空时,应使用这种返回类型,它不返回任何值。,33,数组:是有相同类型的、用一个标识符名称封装到一起的一个对象序列或基本数据类型数据序列。 数组是一种最简单的复合数据类型。 数组可以是一维的也可以是多维的。 一维数组定义: type arrayName 或 type arrayName 说明: type : 可以是java中任意的数据类型,包括简单类型和复合类型(也可以是数组) arrayName :为一个合法的标识符; 指明该变量是一个数组类型的变量。,数 组,34,例如声
14、明一个数组x: int x ; int x; 声明一个数组,每个元素都是整数数据。 声明的时候不指定数组的长度。 只声明的数组是不能访问它的任何元素的 请问此时能否访问该数组中的值?,数 组 -声明数组变量,int x ;,35,用new关键为对象分配其内存空间。 type arrayName = new typearraySize 例如: int x = new int100; 通过引用来使用数组元素 :arrayNameindex index为数组下标,可是整型常数或表达式。 index取值从 0 到 arraySize-1;,数 组 为数组分配空间,X = new int100,36,当
15、 x = null 即该数组对象不再被任何引用变量使用的时候,“垃圾回收器”将自动释放该内存资源,数组在内存中的分配,37,数 组,数组的静态初始化 int ia =1,2,3,4; int ia =new int 3,4,5; 动态初始化 int intArray;/声名数组 intArray = new int5;/为数组分配空间 注意:声明数组时,无论用何种方式定义数组,都不能指定其长度 int a5; 声明的时候不能指定长度,38,数 组,使用时要注意的问题 空指针异常(NullPointException) 只声明但没有初始化的时候直接使用该变量。 数组越界异常(ArrayIndexOutBoundsException) 所有数组的下标都从0开始 int a =1,2,3; for (int i= 0; i a.length; i+) System.out.println(ai); 其中length属性表示数组的长度,39,多维数组,多维数组(数组的数组) java没有真正的多维数组,只有数组的数组 二维数组的定义 type arrayName ;或type arrayName; 例子: int xx = new int33; int xx = 3,2,7,1,5,6;,40,静态初始化 int intArray =3,2,7,1,5,6; Java
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 冰柜使用合同范本
- 云南2025年云南省民族宗教事务委员会委属事业单位招聘7人笔试历年参考题库附带答案详解
- MJC13-生命科学试剂-MCE
- GPV574-生命科学试剂-MCE
- 2002-G12-生命科学试剂-MCE
- 1-Phenylethylamine-hydrochloride-生命科学试剂-MCE
- 中山广东中山市东凤镇第二中学招聘临聘教师笔试历年参考题库附带答案详解
- 租借婚纱合同范本
- 科技助力下的大货车司机安全驾驶经验分享
- 综采工作面液压支架安装回撤工职业技能理论考试题库150题(含答案)
- 运动康复机构跌倒风险管理措施
- 开学安全第一课主题班会课件
- 一年级珍惜粮食主题班会学习教案
- 残疾人的就业创业与自我发展
- 全套课件-建筑工程质量与安全管理
- 医院感染的中心静脉导管相关血流感染预防
- 新版《医疗器械经营质量管理规范》(2024)培训试题及答案
- 2025年人教版数学五年级下册教学计划(含进度表)
- DBJ33T 1286-2022 住宅工程质量常见问题控制标准
- 海岸动力学英文课件Coastal Hydrodynamics-复习
- 碳足迹研究-洞察分析
评论
0/150
提交评论