版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JavaJava数据处置数据处置与与流程控制流程控制目 标数据类型运算符号流程控制数组变量特性特性称号:标识符,代表这块内存中的数据。称号:标识符,代表这块内存中的数据。类型:根据所存储的数据类型的不同,有各种不同类型的变类型:根据所存储的数据类型的不同,有各种不同类型的变量。量。初始值:为其赋值或者是保管缺省值,变量在运用前必需先初始值:为其赋值或者是保管缺省值,变量在运用前必需先初始化。初始化。作用域作用域 : : 在不同程序块中的可用性及生命周期在不同程序块中的可用性及生命周期int x=0,y; int x=0,y; y=x+3y=x+3;JavaJava中两大数据类型中两大数据类型根
2、本数据类型根本数据类型: :也称作内置类型,也称作内置类型,JavaJava言语本身提供的根本言语本身提供的根本数据类型,是其他类型包括数据类型,是其他类型包括JavaJava中心库和用户自定义类型中心库和用户自定义类型的根底。的根底。例如:例如:boolean , char , String boolean , char , String 等等援用数据类型援用数据类型:Java:Java言语根据根本类型扩展出的其他类型。言语根据根本类型扩展出的其他类型。 例如:例如: class , interface class , interface 等等在程序执行期间可根在程序执行期间可根据需求经常变
3、化的值。据需求经常变化的值。java的变量类型数据类型数据类型根本数据类型根本数据类型援用数据类型援用数据类型数值型数值型字符型字符型(char)(char)布尔型布尔型booleanboolean整数类型整数类型(byte, short, int, long)(byte, short, int, long)浮点类型浮点类型(float, double)(float, double)类类(class)(class)接口接口(interface)(interface)数组数组Java 根本数据类型Java type systemprimitivereferencenullcharnumericb
4、ooleanclassinterfacearrayintegralfloating-pointbyteshortintlongfloatdouble根本数据类型的取值范围根本类型根本类型类型定义类型定义 类型取值类型取值 boolean1 1字节字节8 8位位true,falsebyte1 1字节字节8 8位有符号整数位有符号整数 -128 + 127 char2 2字节字节1616位位UnicodeUnicode字符字符 Unicode 0 Unicode 216-1 short2 2字节字节1616位有符号整数位有符号整数 -32768 -215 + 32767 +215-1int4 4字
5、节字节3232位有符号整数位有符号整数 -2147483648-231 + 2147483647231-1 long8 8字节字节6464位有符号整数位有符号整数 -263 + 263-1float4 4字节字节3232位浮点数位浮点数1.4E-45 3.4E+38 , -1.4E-45 -3.4E+38 double8 8字节字节6464位浮点数位浮点数4.9E-324 1.7E+308, -4.9E-324 -1.7E+308 根本数据类型之间的转换当把一个long类型的变量赋值给int类型时,int能够存不下那么大的数。所以编译器不允许把long变量赋值给int变量但是反之可以除bool
6、ean类型外,一切的原始数据类型由于各自的精度不同,赋值时都要思索这个问题根本数据类型之间的转换自动类型转换隐式类型转换byte b = 3;int x = b; /b自动转换成int型14321byteintn强迫类型转换显示类型转换nbyte a;nint b;na = (byte) b; / 强迫转换n强转时,留意丧失数据或失真根本数据类型之间的转换一样类型的变量、常数运算,结果还是原类型一样类型的变量、常数运算,结果还是原类型不同类型的变量、常数运算,结果的类型为参与运算不同类型的变量、常数运算,结果的类型为参与运算的类型中精度最高者的类型中精度最高者表达式的数据类型自动提升规那么表达
7、式的数据类型自动提升规那么byte,short,char型的值被提升型的值被提升int型型其中一个操作数为其中一个操作数为long型,结果为型,结果为long型型其中一个操作数为其中一个操作数为float型,结果为型,结果为float型型其中一个操作数为其中一个操作数为double型,结果为型,结果为double型型根本数据类型之间的转换案例阐明:案例阐明:byte b = 50;byte b = 50;char c = a;char c = a;short s = 1024;short s = 1024;int i = 50000;int i = 50000;float f = 5.67f;
8、float f = 5.67f;double d = .1234;double d = .1234;result = (f result = (f * * b) + ( i/c )-( d b) + ( i/c )-( d * * s ); s );请问请问resultresult是什么类型?是什么类型?案例分析案例分析System.out.println(a+1);System.out.println(a+1);System.out.println(“System.out.println(“+a+1);+a+1);以上两条语句打印结果是什么?以上两条语句打印结果是什么?运算符运算符是一种特殊
9、符号,用以表示数据的运算、运算符是一种特殊符号,用以表示数据的运算、赋值和比较,普通由一至三个字符组成赋值和比较,普通由一至三个字符组成 。运算符共分以下几种运算符共分以下几种算术运算符算术运算符赋值运算符赋值运算符比较运算符比较运算符逻辑运算符逻辑运算符位运算符位运算符算术运算符算术运算符算术运算符算术运算符加减乘除四那么运算+,-,*,/,% 如 :12%5 = 2整数之间相除,只保管整数部分 如: 3510/1000*1000 = 3000假设对负数取模,可以把模数负号忽略不记 如:5%-2=1。但被模数是负数就另当别论了负号:-x = -a;x = a * (-b);运算优先级22yx
10、za = x + y - 2/2 + z;a = x + (y - 2)/(2 + z);优先级系统比较复杂,死记硬背有损脑细胞。用括号来优先级系统比较复杂,死记硬背有损脑细胞。用括号来处理一切问题处理一切问题赋值运算符赋值运算符赋值运算符赋值运算符 (=) 用于为变量赋值用于为变量赋值比较运算符运算符含义例如=等于a=b!=不等于a!=b大于ab小于a=大于或等于a=b=小于或等于a 右移 b = a 2 无符号右移,左边空出的位以0填充 b = a 2 左移 b = a 0000,0001 int b = 10;=0000,0000,0000,0000,0000,0000,0000,101
11、0 a =1; =0000,0000,0000,0000,0000,0000,0000,0001 a&b =0000; =0000,0000,0000,0000,0000,0000,0000,0000 3、移位运算、移位运算 :将一个数的各二进制位全部右移假设干位,最高将一个数的各二进制位全部右移假设干位,最高位那么移入原来最高位的值正数补位那么移入原来最高位的值正数补0,负数补,负数补1。 :将一个数的各二进制位全部右移假设干位,最高将一个数的各二进制位全部右移假设干位,最高位补位补0;运算符的优先级高高优优 先先级级低低三元运算符 (?:)三元运算符三元运算符 (? :) 可可以替
12、代以替代 if-else 构造构造truefalse条件条件 ? 表达式表达式 1 : 表达式表达式 2 class TernaryOp public static void main(String args) int salary,daysPresent = 30; salary = daysPresent = 20 ? 2000 : 3000; System.out.println(您本月薪资为您本月薪资为 $+salary); Instanceof 运算符运算符lclass InstanceOfDemo l public static void main (String args ) l
13、 InstanceOfDemo t = new InstanceOfDemo( );l if (t instanceof InstanceOfDemo) l System.out.println (T是是InstanceOfDemo 的实例的实例);l l else l System.out.println (T不是不是InstanceOfDemo 的实例!的实例!);l l l 可以确定对象能否可以确定对象能否属于一个特定的类属于一个特定的类控制构造控制构造选择选择if-elseif-elseSwitchSwitch循环循环while while do-while do-while forf
14、orJava 支持以下控制支持以下控制构造:选择、循环、构造:选择、循环、跳转跳转 跳转跳转 break Continueif-else 选择语句 if-else 构造的语法为:构造的语法为: if (条件条件) 语句语句1;else 语句语句2; if (条件条件) 语句组;语句组; else 语句组;语句组;ifif和和elseelse块块中只需一条中只需一条语句语句 ifif和和elseelse块中有多条语句块中有多条语句 if (条件条件1) 语句语句1; else if (条件条件2) 语句语句2; else if (条件条件m) 语句语句 m; else 语句语句n;if-else
15、 选择语句if (i 10)if (i 10) return i return i * * 100; 100;elseelse return i return i * * 10; 10;以上代码片断等效于:以上代码片断等效于:return i 10 ? i return i 10 ? i * * 100 : i 100 : i * * 10; 10;switch 选择语句 switch 构造的语法为:构造的语法为: switch(表达式表达式) case 常量值常量值 1: 语句语句(组组); break; case 常量值常量值 2: 语句语句(组组); break; case 常量值常量值
16、 N: 语句语句(组组); break; default: 语句语句(组组);表达式必需为表达式必需为bytebyte,shortshort,intint或或charchar类型类型 v常量值必需是与表达式常量值必需是与表达式类型兼容的特定的一个常类型兼容的特定的一个常量量v不允许有反复的不允许有反复的casecase值值 vdefaultdefault子子句为可选句为可选循环语句循环语句while 循环循环 while(条件条件) 语句组语句组; do-while循环循环do 语句组语句组;while(条件条件);for 循环循环 for(变量初始化变量初始化; 循环条件表达式循环条件表达式
17、; 递增或递减变量的值递增或递减变量的值) 语句组语句组; v“初始化和初始化和“循环条件表达式循环条件表达式部分可以运用逗号来执行多个操作部分可以运用逗号来执行多个操作v假设三个部分都为空语句分号假设三个部分都为空语句分号不能省,相当于一个无限循环不能省,相当于一个无限循环v“当型循环,先当型循环,先判别条件再执行判别条件再执行v“直到型循环,先执行再判别直到型循环,先执行再判别条件,也就是说,至少可以执行一条件,也就是说,至少可以执行一次次v 在在while(条件条件)后面的分号不要后面的分号不要忘忘循环语句运用规那么运用规那么while while 适宜于开场不清楚循环将要进展的次适宜于
18、开场不清楚循环将要进展的次数,而且循环能够一次都不进展的情况数,而且循环能够一次都不进展的情况do-while do-while 适宜于不清楚循环次数,但是循环适宜于不清楚循环次数,但是循环一定要进展一次的情况一定要进展一次的情况for for 适宜于预先知道循环将要进展的次数的适宜于预先知道循环将要进展的次数的情况情况一定程度上他们是可以相互交换的一定程度上他们是可以相互交换的break和和continuebreak 语句在循环中用于立刻从当前循环终止控制。遇到 break 语句时,将跳出当前循环。continue 语句那么是从其调用途跳至循环的开场处。continue 语句之后的语句将不再
19、执行。思索例子中的无限循环用哪种有限循环交换最方便?Return 前往语句Return语句从当前方法退出,前往到调用该方法的语句处,并从紧跟该语句的下一条语句继续执行程序。前往语句的两种格式:1、return expression前往一个值给调用该方法的语句。前往值的数据类型必需和方法声明中的前往值类型一致或是精度低于声明的数据类型。2、return当方法声明中用void声明前往类型为空时,应运用这种前往类型,它不前往任何值。数数 组组数组:是有一样类型的、用一个标识符称号封装到一同的一个对象序列或根本数据类型数据序列。数组是一种最简单的复合数据类型。数组可以是一维的也可以是多维的。一维数组定
20、义:type arrayName 或 type arrayName阐明:type : 可以是java中恣意的数据类型,包括简单类型和复合类型也可以是数组arrayName :为一个合法的标识符; 指明该变量是一个数组类型的变量。数数 组组 -声明数组变量声明数组变量例如声明一个数组例如声明一个数组x x:int x ; int x ; int x;int x;声明一个数组,每个元素都是整数数据。声明一个数组,每个元素都是整数数据。声明的时候不指定数组的长度。声明的时候不指定数组的长度。只声明的数组是不能访问它的任何元素的只声明的数组是不能访问它的任何元素的请问此时能否访问该数组中的值?请问此时
21、能否访问该数组中的值?int x ;数数 组组 为数组分配空间为数组分配空间用用newnew关键为对象分配其内存空间。关键为对象分配其内存空间。type arrayName = new typearraySizetype arrayName = new typearraySize例如:例如: int x = new int100; int x = new int100;经过援用来运用数组元素经过援用来运用数组元素 :arrayNameindex :arrayNameindexindexindex为数组下标,可是整型常数或表达式。为数组下标,可是整型常数或表达式。indexindex取值从取值从
22、 0 0 到到 arraySize-1 arraySize-1;X = new int100X = new int100数组在内存中的分配当 x = null 即该数组对象不再被任何援用变量运用的时候,“渣滓回收器将自动释放该内存资源数数 组组数组的静态初始化int ia =1,2,3,4;int ia =new int 3,4,5;动态初始化int intArray;/声名数组intArray = new int5;/为数组分配空间留意:声明数组时,无论用何种方式定义数组,都不能指定其长度int a5; 声明的时候不能指定长度数数 组组运用时要留意的问题运用时要留意的问题空指针异常空指针异常NullPointExceptionNullPointException只声明但没有初始化的时候直接运用该变量。只声明但没有初始化的时候直接运用该变量。数组越界异常数组越界异常ArrayIndexOutBoundsExceptionArrayIndexOutBoundsException一切数组的下标都从一切数组的下标都从0 0开场开场int a =1,2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年河南艺术职业学院单招职业技能测试题库附答案详解
- 2026年重庆工信职业学院单招职业适应性考试题库及参考答案详解1套
- 2026年内蒙古伊克昭盟单招职业适应性测试题库及完整答案详解1套
- 2026年湖南工艺美术职业学院单招职业倾向性测试题库含答案详解
- 2026年江西外语外贸职业学院单招职业倾向性测试题库及参考答案详解
- 2026年内蒙古北方职业技术学院单招综合素质考试题库及参考答案详解一套
- 护士长竞争上岗面试题及答案
- 药学公招面试题及答案
- 暑假工劳动合同协议书范本
- 公司风险报告模板
- 夫妻调解和好协议书
- 大国兵器(中北大学)学习通网课章节测试答案
- 2025年中邮资产管理公司招聘笔试备考题库(带答案详解)
- 引流管置管的健康宣教
- 常用保护继电器课件
- 《华为员工绩效考核管理办法》
- 扑克俱乐部商业计划书
- 我的家乡湖北孝感介绍
- 库存物品报废申请表
- 医院新院区介绍湘雅医院新医疗区介绍
- 新团员团课学习课件
评论
0/150
提交评论