运算符表达式和流程控制_第1页
运算符表达式和流程控制_第2页
运算符表达式和流程控制_第3页
运算符表达式和流程控制_第4页
运算符表达式和流程控制_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

4.1运算符Java中,运算符有四大类:算术运算符、关系运算符、位运算符和逻辑运算符。另外,还有一些附加的运算符,用于处理那些特殊情况。赋值运算符:在介绍四大类运算符之前,先介绍赋值运算符(=)。它的作用是将赋值运算符后的值(常量或表达式)赋给它前面的变量。算术运算符主要用于数学表达式。运算符名称运算符名称+加-=减法赋值-减*=乘法赋值*乘/=除法赋值/除%=取模赋值%取模++递增+=加法赋值--递减4.1运算符当整型数据与浮点数据之间进行算术运算时,Java会自动完成数据类型的转换,计算结果为浮点数型。除法(/):如果除法的操作数是整型的,则所有的余数都要舍去,结果都是一个整数。如果除法的操作数含有double型的,那么结果是double型的,否则运算结果是float型。关于0的问题:“/”和“%”运算中,如果操作数都是整型,那么0不可以做除数。如果被除数是浮点型,那么0可以作为除数。对于除法,当被除数是正数时,结果为Infinity,表示无穷大。被除数是负数时,结果为-Infinity,表示无穷小。对于取模,结果为NaN。++和--:作用是使变量的值加1或减1,并且只能用于变量,不能用于常量或表达式。自增和自减运算符放在变量前,表示使用该变量之前,将变量的值加1或减1;放在变量后,表示先使用变量,然后再将变量值加1或减1.算术赋值运算有:+=、-=、*=、/=、%=其含义是先进行相应的运算,再将结果赋给变量。(ArithmeticOperatorTest.java)4.1运算符

关系运算符:

用于关系运算,用来判断两个可以比较的数据的关系。其结果是一个boolean型。常见于if语句和循环语句中,用于判断条件是否为真。

运算符名称可运算数据类型>大于整数型、浮点型、字符型<小于整数型、浮点型、字符型==等于所有数据类型!=不等于所有数据类型>=大于等于整数型、浮点型、字符型<=小于等于整数型、浮点型、字符型4.1运算符要注意关系运算符“==”和赋值运算符“=”的区别

4.1运算符运算符名称运算符名称&逻辑与!逻辑反|逻辑或==等于^逻辑异或!=不等于&=逻辑与赋值&&短路与|=逻辑或赋值||短路或^=逻辑异或赋值逻辑运算符:能够在逻辑运算中使用的运算符。在Java中,用于逻辑运算的数据类型必须是boolean型,其结果也是boolean型。4.1运算符常见逻辑运算符的运算结果如表:XYX&YX|YX^YX&&YX||Y!Xfalsefalsefalsefalsefalsefalsefalsetruefalsetruefalsetruetruefalsetruetruetruefalsefalsetruetruefalsetruefalsetruetruetruetruefalsetruetruefalse

其中,&&和||的计算结果由第一个表达式决定。&&的表达式中,第一个表达式的值已经为false了,则不用对第二个表达式进行计算,结果直接得到false。只有当第一个表达式值为true时,才有必要计算第二个表达式。如果更多表达式出现,以此类推。||的表达式中,只有第一个表达式为false时,才有必要计算第二个表达式的值。而&和|要求每个表达式都要计算。(LogicOperator.java)4.1运算符位运算符:

Java中可以使用位运算进行二进制数的运算,操作数可以是整型、字符型或者字节型,但不能是浮点型。运算符名称运算符名称~按位取反&=按位与赋值&按位与|=按位或赋值|按位或^=按位异或赋值^按位异或<<=符号左移赋值<<符号左移>>=符号右移赋值>>符号右移>>>=无符号右移赋值>>>符号右移4.1运算符位逻辑运算符操作数X操作数Y~XX&YX|YX^Y0010000110111000111101102.左移右移运算符左移:将某个数的各个二进制数均向左移动指定的位数。形式为:data<<n在不产生溢出的情况下,数据左移一位相当于乘以2。右移:将某个数的各个二进制数均向右移动制定的位数。右移有两种形式:符号扩展右移和无符号右移。形式分别为:data>>n、data>>>n3.位赋值符号:先进行位运算再将结果进行赋值其他运算符:1.“()”声明和调用一个方法时,在“()”中列出方法的参数,参数可以为空2.“[]”声明数组、创建数组、以及访问数组中的元素时使用。3.“.”访问对象或者访问类的成员变量或者成员方法4.实例运算符instanceof:用来判断对象是否为某一类型,运算结果为boolean型。用法如下:对象标识符instanceof类型标识符5.条件运算符“?:”是Java中唯一的三元运算符,相当于一个简单的if…else…语句。格式为:判断条件?操作组1:操作组2;判断条件是一个逻辑值或者逻辑表达式,如果它为TRUE则执行操作组1,否则执行操作组6.强制类型转换运算符“(type)”:可以将某个类型的变量转换为type类型。4.1运算符优先级运算符结合规律1()、[]、.(点运算符用于连接对象和其成员)、自左至右2!、~、++、--、-(取负数)(byte)(强制类型转换)、instanceof自右至左3*、/、%自左至右4+、-自左至右5<<、>>、>>>自左至右6<、>、<=、>=自左至右7==、!=自左至右8&自左至右9^自左至右10|自左至右11&&自左至右12||自左至右13?:自右至左14各种赋值运算符及其变形运算符自右至左4.1运算符(运算符优先级与结合规律)“+”操作符的另外一个用法用+操作符进行字符串连接

1.执行String连接

2.产生新的String至少一个参数必须是String对象非字符串对象会自动转换为String对象圆括号“()”优先级别最高,提高了括在其中的运算的优先级有时被用来帮助澄清表达式含义圆括号不会降低程序运行速度4.1运算符(字符串连接)表达式是用运算符和括号将操作数连接起来,并符合Java语法规范的式子。表达式可以用于计算一个公式的值、为变量赋值以及帮助控制程序的执行流程。表达式的任务是进行计算及返回计算的结果。表达式的返回值的数据类型取决于表达式中使用的元素。可以在一个表达式中出现多个运算符。语句是一个执行程序的基本单元。例如:c=‘s’;doublepi=3.14;i++;System.out.println(“Hello!”);用“{}”将多个语句组合而成的语句是复合语句。4.2表达式与语句如果两种数据类型兼容,且取值范围变大的话Java自动转换。整数型与浮点型彼此兼容,字符型与逻辑型不兼容,另外字符型与浮点型也不兼容。取值范围从小到大:4.3数据类型转换byteshortcharintlongfloatbouble小大取值范围如果两个数据不兼容,就必须进行强制类型转换。在这里用到了强制类型转换运算符“(type)”.Example: longbigVal=99L; intval1=bigVal;//错误

intval2=(int)bigVal;inti=(int)7.5;//i=7byteb=(byte)774;//b=64.3数据类型转换4.3数据类型转换表达式中类型的提升

1.所有的byte和short以及char类型的值都被提升为int2.如果一个操作数是long型,整个表达式将被提升到long型

3.如果一个操作数是float型,整个表达式将被提升到float型

4.如果一个操作数是double型,整个表达式将被提升到double型Java是用控制语句来改变程序执行的顺序。主要选择控制语句、循环控制语句和程序转移语句。选择控制语句:根据表达式结果或变量状态选择语句来使程序选择不同的执行路径。循环语句:使程序能够重复执行一个或一个以上语句。跳转语句:允许程序以非线性的方式执行。4.4控制语句if语句:形式如下:

if(布尔表达式){//...statement1}else{//…statement2}

如果布尔表达式为真,则执行statement1,否则,执行else后的statement2,else子句是可选的

4.4控制语句(选择控制语句)if(布尔表达式1){//…statement1}elseif(布尔表达式2){//…statement2}else{//…statement3}

如果表达式1为真,则执行statement1,否则判断表达式2,如果表达式2为真,则执行statement2,以此类推,如果条件都不满足则执行statement3If语句还允许嵌套形式,就是在if或者else后的statement中,可以嵌套新的if语句。

else遵循“就近原则”,即它总是与距离它最近的if相对应。

4.4控制语句(选择控制语句)switch(表达式或某一个变量){casevalue1:statement1;break;casevalue2:statement2;break;..casevalueN:statementN;break;default:statementN+1}

4.4控制语句(选择控制语句)switch语句执行过程:当括号内的表达式或变量的值是value1时,则执行statement1,然后跳出switch语句;若表达式或变量的值是value2则执行statement2,然后跳出swith语句。以此类推,若表达式或变量的值不能和任何一个case后面的value值相等,则执行default后面的饿statementN+1.default语句是可选的。如果没有匹配case语句,也没有default语句,则什么也不执行。Break语句用于跳出switch语句。支持的类型是byte、short、int、char有时需要在多个case语句之间没有break语句4.4控制语句(选择控制语句)1.while语句,形式:

while(布尔表达式){//…循环体

}

当表达式的值是true时,执行循环体,反之,不执行其后的循环体,执行while语句接下来的语句。(WhileTest.java)如果while中的布尔表达式为假,则一次循环也不执行。

4.4控制语句(循环控制语句)2.do…while语句

do{//…}while(布尔表达式);

与while语句不同的是,当第一次进入do…while语句,它的表达式的值为false时,仍然执行一次循环体。因为while语句是先执行后判断条件。4.4控制语句(循环控制语句)3.for语句

for(初始化循环变量;判断条件的布尔表达式;循环变量变化){//…循环体;

}

执行过程,首先执行循环变量的初始化,接着检验判断条件是否成立,若成立则执行循环体,然后修改循环变量,再检验判断条件是否成立,成立则又执行循环体,修改循环变量,以此类推……直至判断条件不成立时,跳出循环,结束循环。

4.4控制语句(循环控制语句)for的其他格式:

1.for语句中的初始化循环变量可以省略,但其后的“;”不能省略。如ForTest.java中,将循环变量i在for语句之前声明和初始化。

……inti=1;for(;i<=n;i++)

……

2.for语句循环体可以写在循环变量变化部分,同时循环体是空,即只有一个“;”一般只有循环体比较简单时,才使用这这种形式,否则降低程序的可读性。

……inti=1;for(;i<=n;result*=i,i++);

……4.4控制语句(循环控制语句)3.for语句循环变量变化部分可以写在循环体中,但循环变量变化部分的“;”不能省略

……inti=1;for(;i<=n;){

……i++;}4.For语句中允许循环嵌套4.4控制语句(循环控制语句)

5.可能经常需要在初始化和for循环的反复部分包括超过一个变量的声明。例如:

inta,b;b=4;for(a=1;a<b;a++){System.out.println(”a=”+a);System.out.println(“b=”+b);b--;}改写后为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论