《Java2实用教程第4版第3章运算符、表达式与语句.ppt》由会员分享,可在线阅读,更多相关《Java2实用教程第4版第3章运算符、表达式与语句.ppt(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、注意:开始用功了注意:开始用功了!第 1 页1 页1 页Java2实用教程实用教程(第第4版版)第第3章章配合例子源代码一起使用例子源代码一起使用Power point 制作:耿祥义 张跃平运算符、表达式和语句运算符、表达式和语句 第 2 页主要内容主要内容运算符与表达式运算符与表达式语句概述语句概述if条件分支语句条件分支语句switch开关语句开关语句循环语句循环语句break和和continue语句语句数组与数组与for语句语句导读导读第 3 页3.1 运算符与表达式运算符与表达式 JavaJava提提供供了了丰丰富富的的运运算算符符,如如算算术术运运算算符符、关关系系运运算算符符、逻逻
2、辑辑运运算算符符、位位运运算算符符等等。JavaJava语语言言中中的的绝绝大大多多数数运运算算符符和和C C语语言言相相同同,基基本本语语句句,如如条条件件分分支支语语句句、循循环环语语句句等等也也和和C C语语言言类类似似,因因此此,本本章章就主要知识点给予简单的介绍就主要知识点给予简单的介绍 。第 4 页3.1.1 算术运算符与算术表达式算术运算符与算术表达式 1加减运算符加减运算符:+,-加减运算符是二目运算符;加减运算符的结合方向是从左到右;加减运算符的操作元是整型或浮点型数据,加减运算符的优先级是4级。2乘、除和求余运算符:乘、除和求余运算符:*,/,%以上运算符是二目运算符,结合
3、方向是从左到右,乘、除和求余运算符的操作元是整型或浮点型数据。运算符的优先级是3级。3算术表达式算术表达式 用算术符号和括号连接起来的符合java语法规则的式子,称为算术表达式。第 5 页3.1.2 自增,自减运算符自增,自减运算符 自增、自减运算符:自增、自减运算符:+,-是单目运算符,可以放在操作元之前,也可以放在操作元之后。操作元必须是一个整型或浮点型变量。作用是使变量的值增1或减1,如:+x(-x)表示在使用使用x之前之前,先使x的值增(减)1。x+(x-)表示在使用使用x之后之后,使x的值增(减)1。第 6 页3.1.3 算术混合运算的精度算术混合运算的精度 精度从精度从“低低”到到
4、“高高”排列的顺序是:排列的顺序是:byte short char int long float double Java在计算算术表达式的值时,使用下列计算精度规则:1如果表达式中有双精度浮点数(double型数据),则按双精度进行运算按双精度进行运算。2如果表达式中最高精度是单精度浮点数(float型数据),则按单精度进行运算按单精度进行运算。3如果表达式中最高精度是long型整数,则按按long精精度度进进行运算行运算。4如果表达式中最高精度低于int型整数,则按按int精精度度进进行运算行运算。第 7 页3.1.4 关系运算符与关系表达式关系运算符与关系表达式 关系运算符关系运算符:,=
5、,=,=,!=关系运算符是二目运算符,用来比较两个值的关系。关系运算符的运运算算结结果果是是boolean型型,当运算符对应的关系成立时,运算结果是true,否则是false。第 8 页3.1.5 逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式 逻辑运算符包括逻辑运算符包括&,|,!其中&、|为二目运算符,实现逻辑与、逻辑或;!为单目运算符,实现逻辑非。逻辑运算符的操作元必须是boolean型数据,逻辑运算符可以用来连接关系表达式。第 9 页3.1.6 赋值运算符与赋值表达式赋值运算符与赋值表达式 赋值运算符:赋值运算符:=赋值运算符是二目运算符,左面的操操作作元元必必须须是是变量变量,不能是常
6、量或表达式。赋值运算符的优先级较低,是14级,结合方向右到左。赋值表达式的值就是“=”左面变量的值。注注意意:不要将赋值运算符“=”与等号逻辑运算符“=”混淆。第 10 页3.1.7 位运算符位运算符 对两个整型数据实施位位运运算算,即对两个整型数据对应的位位进行运算得到一个新的整型数据。1“按位与按位与”运算运算“按位与”运算符“&”是双目运算符。2“按位或按位或”运算运算“按位或”运算符:“|”是二目运算符。3“按位非按位非”运算运算“按位非”运算符:“”是单目运算符。4“按位异或按位异或”运算运算“按位异或”运算符:“”是二目运算符。注意注意:参与运算的是两个整型数据、结果也是整型数据。
7、参与运算的是两个整型数据、结果也是整型数据。第 11 页在下面的例子例子1中,利用“异或”运算的性质,对几个字符进行加密并输出密文,然后再解密,运行效果如图3.1。例子例子1第 12 页3.1.8 instanceof instanceof 运算符运算符 instanceof 运运算算符符是二目运算符,左面的操作元是一个对对象象;右面是一个类类。当左面的对象是右面的类或子类创建的对象时,该运算符运算的结果是true,否则是false。第 13 页3.1.9 运算符综述运算符综述 Java的表达式就是用运算符连接起来的符符合合Java规规则则的式子。运运算算符符的的优优先先级级决定了表达式中运算
8、执行的先后顺序。在编写程序时尽尽量量的的使使用用括括号号()运运算算符符号号来实现想要的运算次序,以免产生难以阅读或含糊不清的计算顺序。运算符的结合性决定了并并列列的的相相同同级级别别运运算算符符的先后顺序。第 14 页3.2 语句概述语句概述 JavaJava里的语句可分为以下六类。里的语句可分为以下六类。1方法调用语句。方法调用语句。如:如:(Hello);(Hello);2表达式语句表达式语句 表示式尾加上分号。比如赋值语句:表示式尾加上分号。比如赋值语句:x=23;x=23;3复合语句复合语句 可以用可以用 把一些语句括起来构成复合语句,如:把一些语句括起来构成复合语句,如:z=123
9、+x;z=123+x;System.out.println(How are you);System.out.println(How are you);4空语句。空语句。一个分号也是一条语句,称做空语句。一个分号也是一条语句,称做空语句。5控控制制语语句句。控控制制语语句句分分为为条条件件分分支支语语句句、开开关关语语句句和和循循环语句。环语句。6package语语句句和和 import语语句句。它它们们和和类类、对对象象有有关关,将在第将在第4章讲解。章讲解。第 15 页3.3 ifif条件分支语句条件分支语句 条件分支语句按着语法格式可细分为三种形式,if语句 if-else语句 if-el
10、se if-else if-else 语句第 16 页3.3.1 ifif语句语句 if语语句句是是单单条条件件分分支支语语句句,即根据一个条件来控制程序执行的流程(如图3.2)。if 语句的语法格式:if(表达式)表达式)若干语句若干语句 第 17 页例子例子2将变量a,b,c内存中的数值按大小顺序进行互换(从小到大排列)。public class Example3_2 public static void main(String args)int a=9,b=5,c=7,t=0;if(ba)t=a;a=b;b=t;if(ca)t=a;a=c;c=t;if(cb)t=b;b=c;c=t;Sy
11、stem.out.println(a=+a+,b=+b+,c=+c);例子例子2第 18 页3.3.2 if-else if-else 语句语句 if-else 语句是双条件分支语句,即根据一个条件来控制程序执行的流程。if-else 语句的语法格式:语句的语法格式:if(表达式)(表达式)若干语句若干语句 else 若干语句若干语句 第 19 页例子例子3中有两条if-else语句,其作用是根据成绩输出相应的信息,运行效果如图3.4。例子例子3第 20 页3.3.3 if-else if-else if-else if-else 语句语句 if-else if-else 语句是多条件分支语句
12、,即根据多个条件来控制程序执行的流程。if-else if-else语句的语法格式:语句的语法格式:if(表达式(表达式)若干语句若干语句 else if(表达式(表达式)若干语句若干语句 else 若干语句若干语句 第 21 页3.4 switchswitch开关语句开关语句 switch 语句是单条件多分支的开关语句,它的一般格式定义如下(其中break语句是可选的):switch(表达式表达式)case 常量值常量值1:若干个语句若干个语句 break;case 常量值常量值2:若干个语句若干个语句 break;.case 常量值常量值n:若干个语句若干个语句 break;default
13、:若干语句若干语句第 22 页例子例子4 4使用了switch语句判断用户从键盘输入的正整数是否为中奖号码。例子例子4 4import java.util.Scanner;public class Example3_4 public static void main(String args)int number=0;(输入正整数输入正整数(回车确定回车确定);Scanner reader=new Scanner(System.in);number=reader.nextInt();switch(number)case 9:case 131:case 12:System.out.println(
14、number+是三等奖是三等奖);break;case 209:case 596:case 27:System.out.println(number+是二等奖是二等奖);break;case 875:case 316:case 59:System.out.println(number+是一等奖是一等奖);break;default:System.out.println(number+未中奖未中奖);第 23 页3.5 3.5 循环语句循环语句 3.5.1 3.5.1 forfor循环语句循环语句 for语句的语法格式:语句的语法格式:for(表达式表达式1;表达式表达式2;表达式表达式3)若干
15、语句若干语句 for语句的执行规则是:语句的执行规则是:(1)计算“表达式1”,完成必要的初始化工作。(2)判断“表达式2”的值,若“表达式2”的值为true,则进行(3),否则进行(4)。(3)执行循环体,然后计算“表达式3”,以便改变循环条件,进行(2)。(4)结束for语句的执行。第 24 页例子例子5计算8+88+888+8888 的前12项和 例子例子5public class Example3_5 public static void main(String args)long sum=0,a=8,item=a,n=12,I=1;for(i=1;i=n;i+)sum=sum+ite
16、m;item=item*10+a;System.out.println(sum);第 25 页3.5.2 while while 循环循环 while语句的语法格式:语句的语法格式:while(表达式表达式)若干语句若干语句 while语句的执行规则是:语句的执行规则是:(1)计算表达式的值,如果该值是true时,就进行(2),否则执行(3)。(2)执行循环体,再进行(1)。(3)结束while语句的执行。第 26 页3.5.3 do-whiledo-while循环循环 do-while语句的语法格式:语句的语法格式:do 若干语句若干语句 while(表达式表达式);do-while语句的执
17、行规则是:语句的执行规则是:(1)执行循环体,再进行(2)。(2)计算表达式的值,如果该值是true时,就进行(1),否则执行(3)。(3)结束while语句的执行。第 27 页例子例子6 6用while语句计算1+1/2!+1/3!+1/4!的前20项 例子例子6 6public class Example3_6 public static void main(String args)double sum=0,item=1;int i=1,n=20;while(i=n)sum=sum+item;i=i+1;item=item*(1.0/i);System.out.println(sum=+s
18、um);第 28 页3.6 breakbreak和和continuecontinue语句语句 break和 continue语 句 是 用用 关关 键键 breakbreak或或continuecontinue加上分号构成的语句加上分号构成的语句。在循环体中可以使用break语句和continue语句。如果在某次循环中执行了break语句,那么整个循环语句就结束。如果在某次循环中执行了continue语句,那么本次循环就结束,即不再执行本次循环中循环体中continue语句后面的语句,而转入进行下一次循环。第 29 页例子例子7使用了continue和break语句 计算1+3+5输出100内
19、的素数.例子例子7public class Example3_7 public static void main(String args)int sum=0,i,j;for(i=1;i=10;i+)if(i%2=0)/计算计算1+3+5+7+9 continue;sum=sum+i;System.out.println(sum=+sum);for(j=2;j=100;j+)/求求100以内的素数以内的素数 for(i=2;ij/2)System.out.println(+j+是素数是素数);第 30 页3.7 forfor语句与数组语句与数组 JDK1.5后,对for语句的功能给予扩充、增强,
20、以便更好地遍历数组。语法格式如下:for(声明循环变量:数组的名字)其中,声明的循环变量的类型必须和数组的类型相同。这种形式的for语句类似自然语言中的“for each”语句,为了便于理解上述for语句,可以将这种形式的for语句中翻译成“对对于于循循环环变量依次取数组的每一个元素的值变量依次取数组的每一个元素的值”。第 31 页例子例子8分别使用for语句的传统方式和改进方式遍历数组。例子例子8public class Example3_8 public static void main(String args)int a=1,2,3,4;char b=a,b,c,d;for(int n=
21、0;na.length;n+)/传统方式 System.out.println(an);for(int n=0;nb.length;n+)/传统方式传统方式 System.out.println(bn);for(int i:a)/循环变量循环变量i依次取数组依次取数组a的每一个元素的值(改进方式)的每一个元素的值(改进方式)System.out.println(i);for(char ch:b)/循环变量ch依次取数组b的每一个元素的值(改进方式)System.out.println(ch);第 32 页3.8 3.8 应用举例应用举例 例子例子9中,用户在键盘依次输入若干个数字,每输入一个数字都需要按回车键确认,最后在键盘输入一个非数字字符串结束整个输入操作过程。程序将计算出这些数的和以及平均值。效果如图3.9所示。在从键盘输入数据时,经常让reader对象先调用hasNextXXX()方法等待用户在键盘输入数据,然后再调用nextXXX()方法获取用户输入的数据。例子例子9第 33 页第 34 页