Java编程基础及应用第3章运算符、表达式和语句课件.ppt

上传人:小飞机 文档编号:4009565 上传时间:2023-03-31 格式:PPT 页数:63 大小:663KB
返回 下载 相关 举报
Java编程基础及应用第3章运算符、表达式和语句课件.ppt_第1页
第1页 / 共63页
Java编程基础及应用第3章运算符、表达式和语句课件.ppt_第2页
第2页 / 共63页
Java编程基础及应用第3章运算符、表达式和语句课件.ppt_第3页
第3页 / 共63页
Java编程基础及应用第3章运算符、表达式和语句课件.ppt_第4页
第4页 / 共63页
Java编程基础及应用第3章运算符、表达式和语句课件.ppt_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《Java编程基础及应用第3章运算符、表达式和语句课件.ppt》由会员分享,可在线阅读,更多相关《Java编程基础及应用第3章运算符、表达式和语句课件.ppt(63页珍藏版)》请在三一办公上搜索。

1、Java编程基础及应用第3章 运算符、表达式和语句,第三章 运算符、表达式和语句,3.1 运算符与表达式的分类 3.2 语句以及基本控制结构3.3 本章小结,3.1 运算符的表达式与分类,对数据进行加工和处理称为运算,表示各种运算的符号称为运算符,参与运算的数据称为操作数。运算符和操作数的数据类型必须匹配才能进行相应的运算。按照运算类型,可以将运算符分成以下几类:算术运算符,关系运算符,条件运算符,逻辑运算符,赋值运算符,其它运算符。表达式是由运算符、操作数和方法调用按照语言的语法构造而成的符号序列。表达式可用于一个公式的计算,为变量赋值以及控制程序的执行流程。,3.1.1 算术运算符,Jav

2、a语言支持所有的浮点型和整数型数据进行各种算术运算。算术运算符用于完成数学上的加、减、乘、除四则运算。算术运算符包含一元和二元运算符两类。二元运算符包括+(加)、-(减)、*(乘)、/(除)和%(取余),其中前四个运算符既可以用于整数型数据,也可以用于浮点型数据,而“%”仅用于整数型数据,求两个操作数相除后的余数。,3.1.1 算术运算符,算术运算符的使用基本上与数学中的加减乘除一样,也是先乘除后加减,必要时加上括号表示运算的先后顺序。二元运算符的用法如表3-1。,表3-1 二元算术运算符,3.1.1 算术运算符,一元运算符包括+(自加)、-(自减)、-(负号)。只 能用于整数类型的变量,而不

3、能用于常量或表达式。“+”和“-”既可以出现在变量的左边,也可以出现在变量的右边。前置运算:+、-位于操作数之前,如+x;-x;先改变变量的值后引用。例如:int i=5,j;j=+i;/结果为i=6,j=6下面我们来看一段简单的代码。,3.1.1 算术运算符,例3.1 数字和字符之间的求和,这需要将字符首先转换为相应的ASCLL码值。程序运行结果:76,3.1.2 关系运算符,关系运算符用于进行两个操作数之间的比较运算。关系运算符有六种:(大于)、=(大于等于)、8(x+y+z)6*x,3.1.2 关系运算符,表3-2 关系运算符,3.1.3 逻辑运算符,逻辑运算符是对布尔类型操作数进行的与

4、、或、非、异或等运算,运算结果仍然为布尔类型。逻辑运算也称布尔运算。(1)逻辑“与”和逻辑“或”逻辑“与”和逻辑“或”运算都是二元运算符,操作数是boolean型的变量或求值结果为boolean型数据的表达式。“&”的运算法则是:当两个操作元的值都为true时,运算结果为true,否则为false。,3.1.3 逻辑运算符,“|”的运算法则是:当两个操作元的值都是false时,运算结果是false;否则为true。在判断组合条件时,经常使用“&”和“|”,因为“&”和“|”具有短路计算功能。所谓的短路计算功能是指在组合条件中,从左至右依次判断条件是否满足,一旦能够确定结果,就立即终止计算,不再

5、进行右边剩余的操作。,3.1.3 逻辑运算符,例如:false&(ab)/结果是false(3421)|(a=b)/结果是true由于false参与“&”运算,结果必然是false,就不必再计算(ab)的值;同理,(3421)的值是true,它参与“|”运算,结果必然为true,也不必再计算后面的(a=b)的值,立即结束运算,提高效率。,3.1.3 逻辑运算符,(2)逻辑“非”逻辑“非”运算的符号是“!”,是单目运算符,操作数在左边。当操作元的值为true时,运算结果为false;反之为true。结合性从左至右。(3)逻辑表达式结果为boolean型的变量或者表达式,可以通过逻辑运算符形成逻辑

6、表达式。例如:226&32 x!=0|y!=0。,3.1.3 逻辑运算符,例3.2 下面看一个小程序:与运算中的两个操作数相对应的位置都为1,结果才为1,否则结果为0。/And.javapublic class And public static void main(String args)int a=128;int b=127;System.out.println(a 和b 逻辑与的结果是:+(a 程序运行结果:a 和b 逻辑与的结果是:0,3.1.3 逻辑运算符,下面分析这个程序:“a”的值是128,转换成二进制就是10000000,而“b”的值是128,转换成二进制就是01111111。

7、根据与运算符的运算规律,只有两个位都是1,结果才是1,可以知道结果就是00000000,即0。,3.1.4 赋值运算符,赋值运算符:=。赋值运算符是双目运算符,左面的操作数必须是变量,不能是常量或表达式。赋值运算的本质是首先计算右面表达式的值,再将表达式的值赋给左边的变量。注意:不要将赋值运算符“=”与等号运算符“=”混淆。赋值运算符看起来是比较简单的,但是需要注意“+=”、“-=”、“=”、“/=”、“%=”都表示一个符号。,3.1.4 赋值运算符,例3.3 试运行以下两个程序,看看结果,并找出区别。你会发现Compare1这个程序出现编译错误,因为s+1得到的结果是int型的,需要改为s+

8、=1(如Compare2.java),这样便不会报错。程序运行结果:5,3.1.5 移位运算符,移位运算是对整数型的操作数按二进制的位进行运算,运算结果仍然是整数型数值,分为左移位操作和右移位操作。(1)左移位运算符左移位运算符的符号为“”,是二元运算符。左移位运算符左面的操作元称为被移位数,右面的操作数称为移位量。例如:an运算的结果是通过将a的所有位都左移n位,每左移一个位,左边的高阶位上的0或1被移除丢弃,并用0填充右面的低位。,3.1.5 移位运算符,(2)右移位运算符右移位运算的符号为“”,是双目运算符。假设a是一个被移位的整型数据,n是移位量。an运算的结果是通过将a的所有位都右移

9、n位,每右移一位,右面的低阶位都被移除丢弃,并用0或1填充左面的高位,a是正数用0填充,负数时用1填充。正数不断右移的最后结果一定是0,而负数不断右移的最后结果是-1。,3.1.6 位运算符,(1)“按位与”运算符“&”是双目运算符,对两个整型数据a、b按位进行与运算,运算结果是一个整型数据c。运算法则是:如果a、b两个数据对应位都是1,则c的该位是1,否则是0。例如:1001001和0101001进行“与”运算,表达如下,1001001&0101001 0001001,3.1.6 位运算符,(2)“按位或”运算符“|”是双目运算符。对两个整型数据a、b按位进行或运算,运算结果是一个整型数据c

10、。运算法则是:如果a、b两个数据对应位都是0,则c的该位是0,否则为1.例如:1001001和0101001进行“或”运算,表达如下,1001001|0101001 1101001,3.1.6 位运算符,(3)“按位非”运算符“”是一元运算符。对一个整型数据a按位进行非运算,运算结果是一个整型数据c。运算法则是:如果a对应位是0,则c的该位是1,否则为0。例如:1001001进行“非”运算表达如下,1001001 0110110,3.1.6 位运算符,(4)“按位异或”运算符“”是双目运算符。对两个整型数据a、b按位进行异或运算,运算结果是一个整型数据c。运算法则是:如果a、b两个数据对应位相

11、同,则c的该位是0,否则是1。例如:1001001和0101001进行“异或”运算,表达如下,1001001 0101001 1100000,3.1.7 条件运算符,条件运算符是一个多元运算符,它的符号是“?:”,需要连接三个操作数,用法如下:a?b:c,要求a的值必须为boolean型数据。运算法则是:当a的值为true时,a?b:c运算的结果是b的值;当a的值是false时,a?b:c运算的结果是c的值。例如:82?10:20的结果是10;82?10:20的结果是20。,3.1.8 表达式的类型,表达式的类型由运算结果的数据类型决定。根据表达式的数据类型,表达式可以分为3类:算术表达式、布

12、尔表达式和字符串表达式。注意:(1)数据类型之间的转换:当一种数据类型的值赋给另一种数据类型的变量时,就会出现数据类型的转换。,3.1.8 表达式的类型,在整数型和浮点型数据中,可以将数据类型按照精度从高到底排列,如下:double 高级别 float long int short byte 低级别,3.1.8 表达式的类型,(2)赋值运算中,数据类型的转换规则如下:当低级别的值赋给高级别的变量时,系统自动完成数据类型的转换。例如:float x=200;/将int类型的值200转换为float类型值200.0当高级别的值赋给低级别的变量时,必须进行强制类型转换。强制类型转换形式为:(类型标示

13、符)待转换的值,3.1.8 表达式的类型,例如:int i;i=(int)26L;/将long类型值26转换成int类型值26,结果i获得int类型值26进行强制类型转换时,可能会造成数据精度丢失。表达式中不同类型数据进行运算时,类型转换规则与赋值运算相似。若双目运算符的两个操作数类型不同,系统首先将低级别的值转换为高级别的值,再进行运算。在有些情况下,需要进行强制类型转换。,3.1.8 表达式的类型,例3.4 整数相除,将其结果强制转换为浮点型。程序运行结果:k=3f1=3.0f2=3.25,3.2 语句以及基本控制结构,语句 基本控制结构,3.2.1 语句,语句用来向计算机系统发出操作指令

14、。程序由一系列语句组成。Java里的语句主要分为5类:表达式语句、空语句、复合语句、方法调用语句和控制语句。(1)表达式语句Java语言中最常见的语句就是表达式语句。表达式语句的功能是计算表达式的值。分号是语句的分隔符。例如,赋值语句:b=45;,3.2.1 语句,(2)空语句空语句只有分号,没有内容,不执行任何操作。设计空语句是为了语法需要,例如,循环语句的循环体中如果仅有一条空语句,表示执行空循环。(3)复合语句可以用“和”把一些语句包括起来构成复合语句,一个复合语句也称作一个代码块。例如,c=a+b;t=c/10;,3.2.1 语句,当程序中某个位置在语法上只允许一条语句,而实际上要执行

15、多条语句才能完成某个操作时,需要将这些语句组合成一条复合语句。(4)方法调用语句方法调用语句由方法调用加一个分号组成。例如:System.out.println(“Hello World”);(5)控制语句控制语句完成一定的控制功能,包括条件分支语句、循环语句和转移语句。,3.2.2 程序控制结构,结构化程序设计的基本思想是采用“单入口单出口”的控制结构,基本控制结构分为3种:顺序结构、分支结构和循环结构。面向过程程序设计和面向对象程序设计是软件设计方法的两个重要阶段,这两种程序设计思想并不是对立的,而是继承和发展的。其中,作为面向过程程序设计精华的结构化程序设计思想仍然是面向对象程和序设计方

16、法的基石。,3.2.2 程序控制结构,1.顺序结构 顺序结构的程序设计是最简单的,只要按照需要解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。这种结构的特点是:程序从入口点a开始,按顺序执行所有操作,直到出口点b处,所以称为顺序结构。使用顺序结构可以独立构成一个简单的完整程序,常见的输入、计算、输出三步曲的程序就是顺序结构。例如计算圆的面积,其程序的语句顺序就是输入圆的半径r,计算s=3.14159*r*r,输出,3.2.2 程序控制结构,圆的面积s。不过大多数情况下顺序结构都是作为程序的一部分,与其它结构一起构成一个复杂的程序,例如分支结构中的复合语句、循环结构中的循环体

17、等。顺序结构是我们在设计程序时最常使用的结构流程,因为确实有很多程序基本上都是采用这种自上而下的流程来设计的。这种结构的流程图如图3-1所示。,3.2.2 程序控制结构,图3-1 顺序结构流程图,3.2.2 程序控制结构,2.选择结构与分支语句程序中有些程序段的执行是有条件的,当条件成立时,执行一些程序段;当条件不成立时,执行另一些程序段,或者不执行。选择结构表示程序的处理步骤出现了分支,它需要根据某一特定的条件选择其中的一个分支执行。选择语句有两种:if语句和switch语句。,3.2.2 程序控制结构,1)if语句if语句是最常用的选择语句,其中的条件用布尔表达式表示。如果布尔表达式的值为

18、true,表示条件满足,执行某一语句;如果布尔表达式的值为false,表示条件不满足,执行另一语句。if语句是单分支、二分支或者多分支的语句。if语句的格式如下:if(布尔表达式)语句1else 语句2,3.2.2 程序控制结构,说明:(1)如果布尔表达式的值为true,执行语句1;否则执行语句2.其中else子句是可选项,如果没有else子句,在布尔表达式的值为false时,什么也不执行,形成单分支选择。(2)语句1和语句2可以是一条简单语句,也可以是复合语句或其它构造语句。,3.2.2 程序控制结构,例3.5 根据if语句进行判断,如果a3,输出a+,否则输出a-。程序运行结果:2,3.2

19、.2 程序控制结构,2)if语句嵌套程序有时需要根据多条件再选择某一操作,这时就可以使用if-else if-else语句。if-else if-else语句是Java中的一条语句,由一个“if”、若干个“else-if”和一个“else”与若干个复合语句按一定规则构成。语句的格式如下:,3.2.2 程序控制结构,if(表达式1)若干语句else if(表达式2)若干语句else if(表达式n)若干语句else若干语句,3.2.2 程序控制结构,一条if-else if-else语句的作用是根据不同的条件产生不同的操作,执行规则为:if以及else if后面的括号内的表达式的值必须是bool

20、ean型的。该语句执行时,首先计算if后括号中的表达式的值,如果该表达式的值为true,则执行紧跟着的复合语句,然后就结束整个语句的执行;如果if后括号中的表达式的值为false,就依次再计算后面的else if的表达式的值,直到出现某个表达式的值为true为止,然后执行该else if后面的复合语句,结束整个语句的执行。如果所有的表达式的值都是false,就执行else后面的复合语句,结束整个语句的执行。,3.2.2 程序控制结构,例3.6 使用if-else嵌套语句编写程序。程序运行结果:x=5y=5,3.2.2 程序控制结构,3)开关语句当要从多个分支中选择一个分支去执行时,虽然可以使用

21、嵌套的if语句,但是当嵌套层太多时会程序的可读性差。为此,java提供了多分支选择语句,即switch语句,switch语句能够根据给定表达式的值,从多个分支中选择一个分支来执行。,3.2.2 程序控制结构,它的格式如下:switch(表达式)case 常量1:语句序列1;break;case 常量2:语句序列2;break;case常量n:语句序列n;default:语句序列n+1;break;,3.2.2 程序控制结构,注意:(1)表达式的数据类型必须是整型或者字符型。Break语句和default语句是可选项。(2)switch语句首先计算表达式的值,如果表达式的值和某个case后面的常

22、量值相同,就执行该case里的若干个语句,直到碰到break语句为止。如果某个case子句中没有break语句,一旦表达式的值与该case后面的常量值相等,在执行完该case子句中的语句序列后,继续执行后续的case子句中的语句序列,直到遇到break语句为止。如果没有一个常量值与表达式的值相等,则执行default子句中的语句序列;如果没有default子句,switch语句不执行任何操作。,3.2.2 程序控制结构,例3.7 通过命令行输入1-7之间的一个整数,输出相应的周一到周日的英文单词。如果在命令行输入:1程序运行程序,将1传递给args0,则输出结果:Sunday,3.2.2 程序

23、控制结构,例3.8 根据系统输入的数值,运行相应的程序代码。如果在命令行输入:3程序运行程序,将2传递给x,则输出结果:Block C n=2 result=8,3.2.2 程序控制结构,3.循环结构循环结构表示程序反复执行某个或某些操作,直到某条件为假(或为真)时才可终止循环。在循环结构中最主要的是:什么情况下执行循环?哪些操作需要循环执行?循环结构的基本形式有两种:当型循环和直到型循环,而什么情况下执行循环则要根据条件判断。Java提供了3种循环结构,包括while语句、dowhile语句和for语句。他们的共同点就是根据给定条件来判断是否执行指定的程序段(循环体)。如果满足执行条件,就继

24、续执行循环体,否则就不再执行循环体,结束循环语句。另外,每种语句都有自己的特点。在实际应用中,应该根据具体问题,选择合适的循环语句。,3.2.2 程序控制结构,1)while循环while语句的格式为:while(表达式)循环体while语句由关键字while、括号中的一个值为boolean型数据的表达式和一个复合语句组成,其中的复合语句称作循环体,循环体只有一条语句时,大括号“”可以省去,但是最好不要省去,这样可以增加程序的可读性。表达式称作循环条件。,3.2.2 程序控制结构,while语句的执行规则是:(1)计算表达式的值,如果该值为true,就进行(2),否则就进行(3)。(2)执行循

25、环体,再进行(1)(3)结束while语句的执行。可以看出来while语句的特点是:先判断,后执行。如果一开始,布尔表达式的值就是false,则循环体一次也不执行,所以while语句的最少执行次数为0。,3.2.2 程序控制结构,例3.9 阶乘的计算公式为n!=n*(n-1)*(n-2)*.*3*2*1,试计算9!。程序运行结果:9!=362880.0,拓展练习:使用for循环编写9!,3.2.2 程序控制结构,2)dowhile语句 dowhile语句的语法如下:do循环体while(表达式);dowhile语句的执行规则是:执行循环体,计算布尔表达式的值,若值为true,再执行循环体,形成

26、循环,直到布尔表达式的值变为false,结束循环,执行dowhile语句的下一条语句。可以看出,dowhile循环语句的特点是先执行,后判断。所以,dowhile语句的循环体至少执行一次。,3.2.2 程序控制结构,例3.10 使用do-while循环计算1+2+3+99。程序运行结果:sum=4950,3.2.2 程序控制结构,3)for循环for语句是一种使用比较频繁的循环语句,for语句的一般格式为:for(表达式1;表达式2;表达式3)循环体注意:(1)表达式1的作用是给循环控制变量(以及其他变量)赋初值;表达式2为布尔类型,给出循环条件;表达式3给出循环控制变量的变化规律,通常是递增

27、或递减的。(2)循环体可以使一条简单语句,也可以是复合语句。,3.2.2 程序控制结构,(3)for语句的执行规则是:执行表达式1给出循环控制变量赋初值;计算表达式2的值,若值为true,执行循环体;执行表达式3,改变循环控制变量的值;再计算表达式2的值,若其值为true,再执行循环体,形成循环,直到表达式2的值变为false,结束循环,执行for循环的下一条语句。例:使用for循环计算199之间所有整数的和。,3.2.2 程序控制结构,4 跳转语句跳转语句是指用关键字break或continue加上分号构成的语句,可以控制流程转移。1)break语句 break语句用于switch语句或wh

28、ile、dowhile、for循环语句,如果程序执行break语句,立即从switch语句或者循环语句退出,即用来退出switch结构或终止循环。,3.2.2 程序控制结构,例3.11 用break语句退出循环。运行代码:运行结果为:,3.2.2 程序控制结构,2)continue语句若在某次循环体中执行了continue语句,那么本次循环就结束,即不再执行本次循环中循环体中continue语句后面的语句,转而执行循环的第一条语句,计算和判断循环条件,决定是否进入下一轮循环。,3.2.2 程序控制结构,例3.12 运用continue循环语句显示一个由“*”组成的三角形。程序运行结果:*,3.

29、3 本章小结,本章主要介绍Java语言中的运算符、表达式和常用语句等基础知识。在Java中,按照运算类型,可以将运算符分成以下几类:算术运算符,关系运算符,条件运算符,逻辑运算符,赋值运算符,其它运算符。根据表达式的数据类型,可以将表达式分为算术表达式、布尔表达式和字符串表达式3类。Java中的控制语句有if语句、switch语句、for语句、while语句、do-while语句等,读者需要把这些语句搞清楚,这是进一步学习Java的基础。本章采用概念与例题相结合的方式,使用相应的例题帮助读者深化理解概念。希望读者对本章的例题逐个进行分析,在eclipse中进行调试、运行,尽可能对其进行扩充,锻炼自己的编程能力。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号