Java程序设计精编教程第4章_运算符表达式与语句

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2010-8-11《Java程序设计精编教程》第4章配合Java程序设计精编教程例子源代码一起使用Powerpoint制作:耿祥义张跃平运算符、表达式与语句2010-8-12主要内容运算符与表达式语句概述if条件分支语句switch开关语句循环语句break和continue语句数组导读2010-8-13§4.1运算符与表达式Java提供了丰富的运算符,如算术运算符、关系运算符、逻辑运算符、位运算符等。2010-8-14§4.1.1算术运算符与算术表达式1.加减运算符:+,-加减运算符是二目运算符;加减运算符的结合方向是从左到右;加减运算符的操作元是整型或浮点型数据,加减运算符的优先级是4级。2.乘、除和求余运算符:*,/,%以上运算符是二目运算符,结合方向是从左到右,乘、除和求余运算符的操作元是整型或浮点型数据。运算符的优先级是3级。3.算术表达式用算术符号和括号连接起来的符合java语法规则的式子,称为算术表达式。2010-8-15§4.1.2自增,自减运算符自增、自减运算符:++,--是单目运算符,可以放在操作元之前,也可以放在操作元之后。操作元必须是一个整型或浮点型变量。作用是使变量的值增1或减1,如:++x(--x)表示在使用x之前,先使x的值增(减)1。x++(x--)表示在使用x之后,使x的值增(减)1。2010-8-16§4.1.3算术混合运算的精度精度从“低”到“高”排列的顺序是:byteshortcharintlongfloatdoubleJava在计算算术表达式的值时,使用下列计算精度规则:1.如果表达式中有双精度浮点数(double型数据),则按双精度进行运算。2.如果表达式中最高精度是单精度浮点数(float型数据),则按单精度进行运算。3.如果表达式中最高精度是long型整数,则按long精度进行运算。4.如果表达式中最高精度低于int型整数,则按int精度进行运算。2010-8-17§4.1.4关系运算符与关系表达式关系运算符:关系运算符是二目运算符,用来比较两个值的关系。关系运算符的运算结果是boolean型,当运算符对应的关系成立时,运算结果是true,否则是false。2010-8-18§4.1.5逻辑运算符与逻辑表达式逻辑运算符包括&&,||,!其中&&、||为二目运算符,实现逻辑与、逻辑或;!为单目运算符,实现逻辑非。逻辑运算符的操作元必须是boolean型数据,逻辑运算符可以用来连接关系表达式。2010-8-19§4.1.6赋值运算符与赋值表达式赋值运算符:=赋值运算符是二目运算符,左面的操作元必须是变量,不能是常量或表达式。赋值运算符的优先级较低,是14级,结合方向右到左。赋值表达式的值就是“=”左面变量的值。注意:不要将赋值运算符“=”与等号逻辑运算符“==”混淆。2010-8-110§4.1.7位运算符对两个整型数据实施位运算,即对两个整型数据对应的位进行运算得到一个新的整型数据。1.“按位与”运算“按位与”运算符“&”是双目运算符。2.“按位或”运算“按位或”运算符:“|”是二目运算符。3.“按位非”运算“按位非”运算符:“~”是单目运算符。4.“按位异或”运算“按位异或”运算符:“^”是二目运算符。注意:参与运算的是两个整型数据、结果也是整型数据。注意:运算法则是什么?运算结果的精度怎样?2010-8-111§4.1.8instanceof运算符instanceof运算符是二目运算符,左面的操作元是一个对象;右面是一个类。当左面的对象是右面的类或子类创建的对象时,该运算符运算的结果是true,否则是false。2010-8-112§4.1.9运算符综述◆Java的表达式就是用运算符连接起来的符合Java规则的式子。◆运算符的优先级决定了表达式中运算执行的先后顺序。◆在编写程序时尽量的使用括号()运算符号来实现想要的运算次序,以免产生难以阅读或含糊不清的计算顺序。◆运算符的结合性决定了并列的相同级别运算符的先后顺序。2010-8-113§4.2语句概述Java里的语句可分为以下六类。1.方法调用语句。如:System.out.println(Hello);2.表达式语句表示式尾加上分号。比如赋值语句:x=23;3.复合语句可以用{}把一些语句括起来构成复合语句,如:{z=123+x;System.out.println(Howareyou);}4.空语句。一个分号也是一条语句,称做空语句。5.控制语句。控制语句分为条件分支语句、开关语句和循环语句。6.package语句和import语句。它们和类、对象有关,将在第5章讲解。2010-8-114§4.3if条件分支语句条件分支语句按着语法格式可细分为三种形式,if语句if-else语句if-elseif-……-elseif-else语句2010-8-115§4.3.1if语句if语句是单条件分支语句,即根据一个条件来控制程序执行的流程。if语句的语法格式:if(表达式){若干语句}2010-8-116§4.3.2if-else语句if-else语句是双条件分支语句,即根据一个条件来控制程序执行的流程。if-else语句的语法格式:if(表达式){若干语句}else{若干语句}2010-8-117§4.3.3if-elseif-else语句if-elseif-else语句是多条件分支语句,即根据多个条件来控制程序执行的流程。if-elseif-else语句的语法格式:if(表达式){若干语句}elseif(表达式){若干语句}……else{若干语句}2010-8-118§4.4switch开关语句switch语句是单条件多分支的开关语句,它的一般格式定义如下(其中break语句是可选的):switch(表达式){case常量值1:若干个语句break;case常量值2:若干个语句break;...case常量值n:若干个语句break;default:若干语句}例题4-22010-8-119§4.5循环语句§4.5.1for循环语句for语句的语法格式:for(表达式1;表达式2;表达式3){若干语句}for语句的执行规则是:(1)计算“表达式1”,完成必要的初始化工作。(2)判断“表达式2”的值,若“表达式2”的值为true,则进行(3),否则进行(4)。(3)执行循环体,然后计算“表达式3”,以便改变循环条件,进行(2)。(4)结束for语句的执行。例题4-32010-8-120§4.5.2while循环while语句的语法格式:while(表达式){若干语句}while语句的执行规则是:(1)计算表达式的值,如果该值是true时,就进行(2),否则执行(3)。(2)执行循环体,再进行(1)。(3)结束while语句的执行。2010-8-121§4.5.3do-while循环do-while语句的语法格式:do{若干语句}while(表达式);do-while语句的执行规则是:(1)执行循环体,再进行(2)。(2)计算表达式的值,如果该值是true时,就进行(1),否则执行(3)。(3)结束while语句的执行。例4-42010-8-122§4.6break和continue语句break和continue语句是用关键break或continue加上分号构成的语句。在循环体中可以使用break语句和continue语句。如果在某次循环中执行了break语句,那么整个循环语句就结束。如果在某次循环中执行了continue语句,那么本次循环就结束,即不再执行本次循环中循环体中continue语句后面的语句,而转入进行下一次循环。例4-52010-8-123§4.7数组数组是相同类型的变量按顺序组成的一种复合数据类型,称这些相同类型的变量为数组的元素或单元。数组通过数组名加索引来使用数组的元素。数组属于引用型变量,创建数组需要经过声明数组和为数组分配变量两个步骤。2010-8-124§4.7.1声明数组声明数组包括数组变量的名字(简称数组名)、数组的类型。声明一维数组有下列两种格式:数组的元素类型数组名[];数组的元素类型[]数组名;声明二维数组有下列两种格式:数组的元素类型数组名[][];数组的元素类型[][]数组名;例如:floatboy[];charcat[][];2010-8-125§4.7.2为数组分配元素声明数组仅仅是给出了数组名字和元素的数据类型,要想真正的使用数组还必须为它分配内存空间,即创建数组。在为数组分配内存空间时必须指明数组的长度。为一维数组分配内存空间的格式如下:数组名字=new数组元素的类型[数组元素的个数];例如:boy=newfloat[4];2010-8-126§4.7.3数组元素的使用一维数组通过索引符访问自己的元素,如boy[0],boy[1]等。需要注意的是索引从0开始。二维数组也通过索引符访问自己的元素,如a[0][1],a[1][2]等;需要注意的是索引从0开始。2010-8-127§4.7.4length的使用数组的元素的个数称作数组的长度。对于一维数组,“数组名.length”的值就是数组中元素的个数。对于二维数组“数组名.length”的值是它含有的一维数组的个数。2010-8-128§4.7.5数组的初始化创建数组后,系统会给数组的每个元素一个默认的值,如,float型是0.0。在声明数组的同时也可以给数组的元素一个初始值,如:floatboy[]={21.3f,23.89f,2.0f,23f,778.98f};也可以直接用若干个一维数组初始化一个二维数组,这些一维数组的长度不尽相同,例如:inta[][]={{1},{1,1},{1,2,1},{1,3,3,1},{1,4,6,4,1}};2010-8-129§4.7.6数组的引用数组属于引用型变量,因此两个相同类型的数组如果具有相同的引用,它们就有完全相同的元素。例如,对于inta[]={1,2,3},b[]={4,5};数组变量a和b分别存放着引用0x35ce36和0x757aef。如果使用了下列赋值语句(a和b的类型必须相同)a=b;那么,a中存放的引用和b的相同,这时系统将释放最初分配给数组a的元素,使得a的元素和b的元素相同。2010-8-130§4.7.7遍历数组1.基于循环语句的遍历语法格式如下:for(声明循环变量:数组的名字){…}其中,声明的循环变量的类型必须和数组的类型相同。2.使用toString()方法遍历数组让Arrays类调用publicstaticStringtoString(int[]a)方法,可以得到参数指定的一维数组a的如下格式的字符串表示:[a[0],a[1]…a[a.length-1]]例如,对于数组:int[]a={1,2,3,4,5,6};Arrays.toString(a)得到的字符串是:[1,2,3,4,5,6]例4-7•下列程序段执行后t5的结果是()。–intt1=9,t2=11,t3=8,t4,t5;–t4=t1t2?t1:t2+t1;–t5=t4t3?t4:t3;•写出下面代码的输出结果–int[][]a=newint[10][5];–System.out.println(a.length);–System.out.println(a[3].length);•试利用for循环,计算1+2+3+4+5+…+100的总和。•将一个数组中的值按逆序重新存放。假定原来的顺序为4,1,3,5,9,2,1。要求改为1,2,9,5,3,1,4。2010-8-131

1 / 31
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功