运算符、表达式和语句(王宗江).ppt_第1页
运算符、表达式和语句(王宗江).ppt_第2页
运算符、表达式和语句(王宗江).ppt_第3页
运算符、表达式和语句(王宗江).ppt_第4页
运算符、表达式和语句(王宗江).ppt_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

第3章,运算符、表达式和语句,3.1 运算符与表达式 3.2 语句概述 3.3 if条件分支语句 3.4 开关语句 3.5 循环语句 3.6 break和continue语句 3.7 数组与for语句 3.8 枚举类型与for、switch语句,主要内容,3.1 运算符与表达式,对数据进行运算时,需要使用各种不同的运算符 在Java语言中,运算符分为下面几类: 算术运算符 关系运算符 逻辑运算符 赋值运算符 位运算符 条件运算符,运算符-1,算术运算符与算数表达式,说明,1加减运算符: +,- 加减运算符是二目运算符;加减运算符的结合方向是从左到右;加减运算符的操作元是整型或 浮点型数据。 2乘、除和求余运算符: *,/,% 以上运算符是二目运算符,结合方向是从左到右,乘、除和求余运算符的操作元是整型或浮点型 数据。 3自增、自减运算符:a+(a-),+a(-a) 是单目运算符,可以放在操作元之前,也可以放在操作元之后。操作元必须是一个整型或浮点型 变量。作用是使变量的值增1或减1。+a(-a)表示在使用a之前,先使a的值增(减)1。 a+(a-)表示在使用a之后,使a的值增(减)1。 4 算术表达式: 用算术符号和括号连接起来的符合java语法规则的式子,称为算术表达式。,算术混合运算精度,精度从“低”到“高”排列的顺序是: byte short char int long float double Java在计算算术表达式的值时,使用下列计算精度规则: 1如果表达式中有双精度浮点数(double型数据),则按双精度进行 运算。 2如果表达式中最高精度是单精度浮点数(float型数据),则按单精 度进行运算。 3如果表达式中最高精度是long型整数,则按long精度进行运算。 4如果表达式中最高精度低于int型整数,则按int精度进行运算。,运算符-2,关系运算符与关系表达式,说明,关系运算符是二目运算符,用来比较两个值的关系。关 系运算符的运算结果是boolean型,当运算符对应的关 系成立时,运算结果是true,否则是false。 3=2 false 3 = 2 false (6-5)= (7-6) true,输出: false false true,运算符-3,逻辑运算符与逻辑表达式,说明及示例,(1)其中&、|为二目运算符,实现逻辑与、逻辑或;规则? (2)!为单目运算符,实现逻辑非。 (3)逻辑运算符的操作元必须是boolean型数据,逻辑运算符可以 用来连接关系表达式。 !(32) false (32) &(72) |(76) true,输出: false false true,运算符-4,赋值运算符 赋值运算符为一个单独的等于号“=”,它将值赋给变量 。如:,int i = 3;,此外赋值运算符可以与算术运算符结合成一个运算符。如:,i+=3; / 等效于i=i+3,类似的赋值运算符如下表所示:,注意:不要将赋值运算符“=”与等号逻辑运算符“=”混淆。,运算符-5,位运算符,例3.1,public class Example3_1 public static void main(String args) char a1=中,a2=国,a3=科,a4=大; char secret=A; a1=(char)(a1secret); a2=(char)(a2secret); a3=(char)(a3secret); a4=(char)(a4secret); System.out.println(“密文:“+a1+a2+a3+a4); a1=(char)(a1secret); a2=(char)(a2secret); a3=(char)(a3secret); a4=(char)(a4secret); System.out.println(“原文:“+a1+a2+a3+a4); ,运算符-6,条件运算符 条件运算符是三元运算符,语法格式为 :, ? e1 : e2,表达式值的类型为布尔类型,若表达式的值为真,则返回e1的值 表达式的值为假,则返回e2的值。,示例,public class ThreeOP public static void main(String args) int num1 = 3, num2 = 6; boolean result = (num1 num2) ? true : false; System.out.println(result); ,演示结果: false,运算符-7,Instanceof 运算符,判断某对象是否属于某类? instanceof 运算符是二目运算符,左面的操作元是一个对象;右面是一个类。当左面的对象是右面的类或子类创建的对象时,该运算符运算的结果是true ,否则是false。,运算符-综述,运算符优先级,优先级是指同一表达式中多个运算符被执行的次序,在表达式求值 时,先按运算符的优先级由高到低的次序执行。Java中运算符优先级如下表所示。,3.2 语句概述,Java里的语句可分为以下六类: 1方法调用语句。如:System.out.println(“ Hello“); 2表达式语句 表示式尾加上分号。比如赋值语句:x=23; 3复合语句 可以用 把一些语句括起来构成复合语句,如: z=123+x; System.out.println(“How are you“); 4空语句。 一个分号也是一条语句,称做空语句。 5控制语句。控制语句分为条件分支语句、开关语句和循环语句。 6package语句和 import语句。它们和类、对象有关,将在第4章讲解。,3.3 if条件分支语句,条件分支语句按着语法格式可细分为三种形式: if语句 if-else语句 If - else if - else 语句,3.3.1 if 语句,If 语句是单条件分支语句,即根据一个条件来控制程序执行的流程。,if条件语句的基本语法格式: if(布尔表达式) 若干语句 ,例子,例1:没有 else部分的例子 Public class IfTry public static void main(String args ) int a1=95; if(a1=90) System.out.println(“祝贺你,你获得奖学金!“); ,3.3.2 if-else语句,if-else 语句是双条件分支语句,即根据一个条件来控制程序执行的流程。,if-else条件语句基本语法格式: if(布尔表达式) 语句序列1 else /否则 语句序列2 ,例子,例2:有 else部分的例子 Public class IfTry2 public static void main(String args ) int a1=59; if(a1=60) System.out.println(“你及格了!“); else System.out.println(“你没及格,请继续努力!“); ,3.3.3 if -else if- else 语句,if- else if -else 语句是多条件分支语句,即根据多个条件来控制程序执行的流程。,if(表达式) 若干语句 else if(表达式) 若干语句 else 若干语句 ,例子,public class T1 public static void main(String args) int a=10; if(a30) System.out.println(“a30“); else if(a20) System.out.println(“a20“); else if(a10) System.out.println(“a10“); else if(a0) System.out.println(“a0“); ,3.4 switch开关语句,switch 语句是单条件多分支的开关语句,它的一般格式定义如下(其中default语句是可选的) switch(表达式) case 常量值1: 语句系列1 break; case 常量值2: 语句系列2 break; . case 常量值n: 语句系列n break; default: 若干语句 ,3.4 switch 开关语句(续),switch语句的注意点: 1.使用switch 语句时,要注意表达式必须是符合byte,char,short,int类型的表达式,而不能使用浮点类型或long类型,也不能为一个字符串; 2. switch语句将表达式的值依次与每个case子句中的常量值相比较。如果匹配成功,则执行该case子句中常量值后的语句,直到遇到break语句为止; 3. case子句中常量的类型必须与表达式的类型相容,而且每个case子句中常量的值必须是不同的; 4. default子句是可选的,当表达式的值与任一case子句中的值都不匹配时,就执行default后的语句。如果表达式的值与任一case子句中的值都不匹配且没有default子句,则程序不执行任何操作,而是直接跳出switch 语句,进入后续程序段的执行。,3.4 switch 开关语句(续),5. break语句用来在执行完一个case 分支后,使程序跳出switch 语句,执行switch 语句的后续语句。 6. 在一些特殊的情况下,例如多个不同的case值要执行一组相同的操作,语句序列可以只出现一次,如: switch(MyGrade) case A: case B: case C: case D: MyGrade=“及格!”; break; default : MyGrade=“不及格”; ,3.4 switch 开关语句(续),7.case 分支中包括多个执行语句时,可以不用花括号“”括起; 8.通过if-else if 语句可以实现switch 语句所有的功能。但通常使用switch语句更简练,且可读性强,程序的执行效率也高; 9. if-else if 语句可以基于一个范围内的值或一个条件来进行不同的操作,但switch 语句中的每个case 子句都必须对应一个单值。,例子,public class TestSwitch public static void main(String args) int grade=100; int x=grade/10; switch(x) case 10: case 9: System.out.println(“成绩为优!“);break; case 8: System.out.println(“成绩为良!“);break; case 7: System.out.println(“成绩为中!“);break; case 6: System.out.println(“成绩为及格!“);break; default: System.out.println(“真糟糕,不及格!“); ,3.5 循环语句,循环语句是根据条件,要求程序反复执行某些操作,直到程序“满意”为止。 包括如下几种循环: for循环语句 while 循环 do-while循环 注意:循环语句的三个要素,3.5.1 for循环语句,for语句的语法格式: for (表达式1; 表达式2; 表达式3) 循环体 for语句的执行规则是: (1)计算“表达式1(初值表达式),完成必要的初始化工作。 (2)判断“表达式2”(条件表达式)的值。若“表达式2”的值为true,则执行循环体,否则结束 for 语句的执行。 (3)执行循环体后,计算“表达式3”,以便改变循环条件,转到(2)。,for循环语句例子,例4:加法从1加到100 public class T4 public static void main(String args) int sum=0; for ( int i=1 ; i=100 ; i+ ) sum=sum+i; System.out.println(“结果=“+sum); ,3.5.2 while循环语句,while语句的语法格式: while (表达式) 循环体 while语句的执行规则是: (1)计算表达式的值,如果该值是true时,就进行循环体,否则结束while语句的执行。 (2)执行循环体后,转到(1)。 (3)一直到结束循环,while 循环语句例子,例5:加法从1加到100 public class T5 public static void main(String args) int a=1; int sum=0; while(a=100) sum=sum+a; a+; System.out.println(“输出结果=“+sum); ,3.5.3 do-while循环语句,do-while语句的语法格式: do 循环体 while(表达式) do- while语句的执行规则是: (1)执行循环体,转到(2)。 (2)计算表达式的值,如果该值是true时,继续执行循环体,否则结束循环。 (3)直到结束循环。,do-while 循环语句例子,例6:加法从1加到100 public class T6 public static void main(String args) int a=1; int sum=0; do sum=sum+a; a+; while(a=100); System.out.println(“sum=“+sum); ,3.6 break和continue语句,break和continue语句是用关键break或continue加上分号构成的语句; 在循环体中可以使用break语句和continue语句; 如果在某次循环中执行了break语句,那么整个循环语句就结束; 如果在某次循环中执行了continue语句,那么本次循环就结束,即不再执行本次循环中循环体中continue语句后面的语句,而转入进行下一次循环; break 结束循环;continue 结束本次循环 ;,使用continue语句例子,例7:求100以内奇数的和 public class TestContinue public static void main(String args) int sum=0,i; for(i=1;i=100;i+) if(i%2=0) continue; sum+=i; System.out.println(“100以内的奇数和是:“+sum); ,使用 break 语句例子,例8:求50以内的素数 public class Testbreak public static void main(String args) int i,j; for(j=2;jj/2) System.out.println(“+j+“是素数“); ,3.7 数组与for语句,遍历数组,可以使用for 循环实现!Java提供了更好的方法! for语句可以更好地遍历数组。语法格式如下: for(声明循环变量:数组的名字) 循环体 功能:对于循环变量,依次取数组的每一个元素的值。 注意: (1)声明的循环变量的类型必须和数组的类型相同。 (2)声明的循环变量必须是变量声明,不可用已经声明变量。 (3)本功能是JDK1.5版本对for语句的扩充。 for(int i :a) System.out.println(i); ,使用数组与for语句例子,public class Example3_8 public static void main(String args) int a=1,2,3,4; char b=a,b,c,d; for(int n=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); ,3.8 枚举类型与for、switch语句,如果有: enum WeekDay sun,mon,tue,wed,thu,fri,sat 可以用该枚举类型声明一个枚举变量,该枚举变量只能取值枚举类型中的常量。通过使用枚举名和“.”运算符获得枚举类型中的常量。 枚举类型可以用如下形式:枚举类型的名字.values()返回一个数组,该数组元素的值和该枚举类型中的常量依次相对应; 如:WeekDay a= WeekDay.values(); JDK1.5之后版本可以使用for语句遍历枚举类型中的常量。,枚举类型与for语句例子,enum Color 红,蓝,绿,黄,黑 public class Example3_9 public static void main(String args) for(Color a:Color.values() for(Color b:Color.values() for(Color c:Color.values() if(a!=b ,

温馨提示

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

评论

0/150

提交评论