运算符和条件结构2.ppt_第1页
运算符和条件结构2.ppt_第2页
运算符和条件结构2.ppt_第3页
运算符和条件结构2.ppt_第4页
运算符和条件结构2.ppt_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

运算符和条件结构,第2章,回顾 1,纠正代码中的错误,输出“早上好!” 说出使用Eclipse开发Java程序的步骤?,public class Test public void main(String args) system.out.println(“早上好!“); ,System中S要大写,回顾 2,找出错误并更正 输出结果是什么?,int radius = 10; double high = 1.9; int vol = 3.14 * radius * radius * high;,需进行强制类型转换,int num1 = 19; int num2 = 89; int temp; temp = num1; num1 = num2; num2 = temp; System.out.println(num1); System.out.println(num2);,int vol = (int)(3.14 * radius * radius * high);,89 19,借助一个中间变量互换两个变量的值,掌握java运算符 掌握if条件结构 使用基本if条件结构 使用多重if条件结构 掌握switch结构的用法 掌握键盘输入,本章目标,Java运算符,算术运算符 比较运算符 逻辑运算符 位运算符 赋值运算符,算术运算符,算术运算符有+、-、*、/、%、+、-。 (1)+,有三种功能:正号、加号和字符串连接。 (2)-,有两种功能:负号和减号。 (3)*,要注意乘法运算后结果是否超出了类型的取值范围,例如: int a=123456, b=2345678, c; c=a*b/b; /结果不是123456,而是 778 (4)/,当左右两个操作数都是整型数时,/表示的是整除 (5)%(取余运算符),其计算结果的符号只与第一个操作数的符号相同,与第二个操作数的符号无关,例如10%3=1,10%-3=1,-10%3=-1,-10%-3=-1,-10.3%3=-1.3。%的操作数可以是整数也可以实浮点数。,7,Java算术运算符可分为一元运算符和二元运算符两种。一元运算符如下表所示。,一元运算符,8,二元运算符用法表,二元运算符,比较运算符,该运算符对左右两端的操作数进行比较,运算结果是boolean类型的。比较运算符有=(相等)、!=(不等)、=、instanceof。 注意:=与=不同,前者是比较操作符,后者是赋值操作符,例如 boolean b=false; if(b=true) /赋值 System.out.println(“Hello“); if(b=true) /比较 System.out.println(“World“); ,逻辑运算符,位运算符,位运算符的几点说明,(1)位运算符可以与=组合使用,例如a=2,a则a的值不变。 (4)移位运算的操作数如果类型不一致,则会发生类型的自动提升,例如ab,提升规则为:若a,b的类型都低于int,则自动提升为int型,否则运算结果的类型和a,b中的最高类型一致。 (5)对移位运算而言,例如ab,若a为int型,则实际移动的位数为b%32,例如int a=10;a1与a/2的结果相同,a1与的结果相同,只是移位运算的速度快。,赋值运算符,赋值运算符为=,可以单独使用,例如a=10,也可以与其他运算符组合使用,若其他运算符统一抽象用表示,则a=b在功能上和a=ab相同,例如a+=3同a=a+3。可组合使用的运算符有:+、-、*、/、%、&、|、。 赋值可以连续使用,例如int a,b,c,d;a=b=c=d=10;连续赋值时,赋值顺序自右向左。,14,条件运算符 条件运算符是一个三元运算符,其一般形式为 expression ? statement1 :statement2; 其语义为:首先计算表达式expression的值,如果该值为真(true),则将statement1的值作为整个表达式的值,反之,将statement2作为整个表达式的值。如: max= x y ? x :y; 该语句取x,y的最大值。需要注意的是,该运算符规定statement1和statement2需返回相同类型的数据,且不能为void。,运算符,15,运算符,16,表达式,表达式就是运算符、操作数以及方法调用的序列,用来说明某个计算过程并返回计算结果。,z = x + y g * h * (t/20)+ 65 r % 2,先算哪部分 加? 减? 取余? 除? 括号?,要解决此问题,需要使用: 运算符优先级,17,运算符的优先级 运算符是有优先级的,它决定表达式中各运算执行的先后顺序。总的来说,运算符优先级具有如下规则: 一元运算符比二元运算符优先级高。 算术运算符比关系运算符优先级高。 关系运算符比按位运算符优先级高。 大于和小于运算符比等于和不等于运算符优先级高。 按位运算符比逻辑运算符优先级高。 逻辑与(&)比逻辑或(|)优先级高。 赋值运算符优先级最低。,运算符,18,运算符的优先级及结合性,运算符,从控制台输入,导入包: import java.util.Scanner; import java.util.*;,使用Scanner输入: 输入整数:,Scanner input = new Scanner(System.in); int age = input.nextInt(); /输入年龄,在源代码第一行,输入字符串:,Scanner input = new Scanner(System.in); String name = input.next(); /输入姓名,流程控制,程序设计的三种基本结构:顺序结构、条件分支结构和循环结构,并从理论上证明了一切可描述的程序算法均可通过使用这三种结构得到解决。 顺序结构 顺序结构是程序设计中最基本最简单的结构,一切程序设计算法,归结到计算机指令,都是顺序执行的,顺序结构要求按顺序执行每一条指令。,条件分支结构,if语句 条件表达式 switch语句,if语句,if 语句有以下几种表现形式: (1)if (boolean表达式) 语句块; (2)if (boolean表达式) 语句块1; else 语句块2 ,(3)if (boolean表达式1) 语句块1; else if (boolean表达式2) 语句块2; else if(boolean表达式n) 语句块n; else 语句块n+1 ,(4)if语句的嵌套。 if 语句可以嵌套使用以表达更复杂的条件判断。如: if(a=2) if(b=3) 语句块1; else 语句块2; 语句块3; ,条件表达式,语法为:表达式1? 表达式2 : 表达式3; 含义是若表达式1的结果为 true,则执行表达式2并返回其值,否则执行表达式3并返回其值。条件表达式相当于 if else结构,例如: int x=-10; int absX= x0? x:-x; /执行完后absX=10,switch 语句,switch(表达式) case 常量表达式1: 语句块1; break; case 常量表达式2: 语句块2; break; case 常量表达式n: 语句块n; break; default: 语句块n+1; break; ,说明,(1)switch表达式的类型只能是byte、char、short、int中的一种。 (2)case语句后常量表达式的类型与switch表达式的类型一致,常量表达式中不能含有变量。 (3)break语句为可选项,放在每个case语句块的末尾,当执行break语句后,就会结束switch语句的执行。若没有break语句,则会继续执行后续的case分支语句,直到遇到break语句或switch语句结束。 (4)default语句的数量可为0或1,case语句的数量可为0或1或多个。default与case语句之间没有先后顺序,只是习惯上把default语句放在最后。,使用switch结构解决问题6,如何使用switch结构,int month = 1; Int year=2010; switch (month) case 1: case 3: case 5: case 7: case 8: case 10: case 12: System.out.println(“本月为大月 有31天 “); break; case 4: case 6: case 9: case 11: System.out.println(“本月为小月 有30天“); break; default: if (year%4=0) System.out.println(“闰年2月 有29天“); else System.out.println(“闰年2月 有28天“); ,大月情况下,小月的情况下,其他情况下闰年非闰年2月情况,演示示例6:使用switch结构,常见错误3-1,int mingCi = 1; switch (mingCi) case 1: System.out.println(“出任武林盟主“); case 2: System.out.println(“出任武当掌门“); case 3: System.out.println(“出任峨嵋掌门“); default: System.out.println(“被逐出师门“); ,输出结果是什么?,如果需要每个case执行完后跳出, 在每个case后不要忘记写break;,演示示例7:完整代码,常见错误3-2,int mingCi = 1; switch (mingCi) case 1: System.out.println(“出任武林盟主“); case 2: System.out.println(“出任武当掌门“); case 2: System.out.println(“出任峨嵋掌门“); default: System.out.println(“被逐出师门“); ,case后面的常量必须各不相同,代码错误,常见错误3-3,String day = “星期一“; switch (day) case “星期一“: System.out.println(“星期一:青菜 “); break; case “星期二“: System.out.println(“星期二:鱼 “); break; default: ,switch后面小括号中表达式的值必须是整

温馨提示

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

评论

0/150

提交评论