运算符、表达式、流程控制.ppt

上传人:小飞机 文档编号:6611403 上传时间:2023-11-17 格式:PPT 页数:40 大小:291KB
返回 下载 相关 举报
运算符、表达式、流程控制.ppt_第1页
第1页 / 共40页
运算符、表达式、流程控制.ppt_第2页
第2页 / 共40页
运算符、表达式、流程控制.ppt_第3页
第3页 / 共40页
运算符、表达式、流程控制.ppt_第4页
第4页 / 共40页
运算符、表达式、流程控制.ppt_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《运算符、表达式、流程控制.ppt》由会员分享,可在线阅读,更多相关《运算符、表达式、流程控制.ppt(40页珍藏版)》请在三一办公上搜索。

1、运算符、表达式,ID:SCSJ001-Java Basic Syntax,2023/11/17,运算符、表达式、流程控制,2,运算符、表达式,Java运算符表达式,2023/11/17,运算符、表达式、流程控制,3,运算符,分割符:,,;,()算术运算符:+,*,/,%,+,关系运算符:,=,赋值运算符:=扩展赋值运算符:+=,=,*=,/=字符串连接运算符:+造型操作符:(),2023/11/17,运算符、表达式、流程控制,4,递增/递减运算符,对于需要对操作数进行加1或减1操作时,可以使用递增或递减运算符递增:+递减:-,int a=10;System.out.print(a+);/10S

2、ystem.out.print(a);/11System.out.print(a-);/11System.out.print(a);/10System.out.print(+a);/11System.out.print(a);/11System.out.print(-a);/10System.out.print(a);/10,2023/11/17,运算符、表达式、流程控制,5,关系和布尔运算符(示例4-3),Java使用=号来判断两个值是否相等,而用!=来判断是否不等,用、=、=来判断大于等于小于等于逻辑运算符功能!-逻辑非&-逻辑与|-逻辑或-逻辑异或&-短路与|-短路或,2023/11/1

3、7,运算符、表达式、流程控制,6,关系和布尔运算符(con.),2023/11/17,运算符、表达式、流程控制,7,位运算符,位运算符功能-取反&-按位与|-按位或-按位异或位运算符功能说明:,&,|,2023/11/17,运算符、表达式、流程控制,8,移位运算符,:右移运算符,将左操作数向右移动,移位个数由右操作数决定:无符号左移位运算符,int a=8;int b=a 1;/4int c=a 1;/8,int a1=-2;a1=a1 1;/无符号左移位运算符11111111 11111111 11111111 11111110(-2)01111111 11111111 11111111 1

4、1111111(2147483647),2023/11/17,运算符、表达式、流程控制,9,移位运算符(con.),移位运算符性质适用数据类型:byte、short、char、int、long,对低于int型的操作数将先自动转换为int型再移位 对于int型整数移位ab,系统先将b对32取模,得到的结果才是真正移位的位数(取模原因:防止移动位数超过32位的无效位数)对于long型整数移位时ab,则是先将移位位数b对64取模,2023/11/17,运算符、表达式、流程控制,10,移位运算符,2023/11/17,运算符、表达式、流程控制,11,赋值运算符(示例4-4),赋值运算符“=”是最常用的

5、一种运算符。它将等于号右边的表达式的值赋给左边的变量。可以将其它的运算符和赋值运算符结合起来,作为“扩展”的赋值运算符:+=,-=,*=,/=,%=,=,&=,|=,=,=,2023/11/17,运算符、表达式、流程控制,12,赋值运算符(con.),当一个表达式中含有不同类型的数据时,需要用到类型转换。类型转换存在两种不同的方式:隐式转换强制转换,2023/11/17,运算符、表达式、流程控制,13,类型转换(con.),隐式类型转换:见下图。在这个图中,黑色的实线表示在进行转换的时候,不会损失信息,而红色的虚线表示在转换时可能会引起信息的损失。如果变量的长度不小于表达式的长度,则可进行赋值

6、,称表达式是赋值兼容的。,2023/11/17,运算符、表达式、流程控制,14,类型转换(con.),强制类型转换(Cast,造型):强制类型转换,或者称为造型,用于显式的转换一个表达式的类型。简单数据类型可以被进行强制类型转换。例如,将一个double类型的数据强制转换成int类型。利用运算符“(type)var”进行强制类型转换。除了简单类型外,引用类型也可以进行强制类型转换。,int a=8;long b=a;int c=b;/错误,不能将long转化为int类型。int d=(int)b;short s=1;s=s+1;/不能编译通过s+=1;/+=是运算符,可以编译通过。,2023/

7、11/17,运算符、表达式、流程控制,15,作为字符串连接符的“+”,运算符“+”除了用于数值类型的加法运算法,在字符串类型(String)数据中,它还是一个用于连接字符串的特殊的运算符。当“+”用在表达式中的时候,如果其中有一个操作数是字符串类型(String),则Java会自动将另一个操作数也转换成字符串,然后将这两个字符串相连起来生成一个新的字符串。,String s=“abc”;System.out.print(s+12);/”abc12”,2023/11/17,运算符、表达式、流程控制,16,表达式,表达式是运算符和操作数的结合,它是任何一门编程语言的关键组成部分表达式允许程序员进行

8、数学计算、值的比较、逻辑操作以及在Java中进行对象的操作。一些表达式的例子:xx+10y=x+10arr10student.geName(),2023/11/17,运算符、表达式、流程控制,17,表达式中运算符的结合性,所有的数学运算都认为是从左到右结合的,在Java中,大部分运算也是从左到右结合的,只有单目运算符、赋值运算符和条件运算符例外乘法和加法是两个可结合的运算,也就是说,这两个运算符左右两边的操作符可以互换位置而不会影响到结果,2023/11/17,运算符、表达式、流程控制,18,表达式中运算符的优先顺序,下面的表格说明了各个运算符的优先顺序,优先级高的运算符放置在表的上部,而在同

9、一行的运算符拥有同样的优先顺序。除了单目运算符、赋值运算符以及条件运算符,其它的运算符都是从左到右结合的。,2023/11/17,运算符、表达式、流程控制,19,运算符优先级,2023/11/17,运算符、表达式、流程控制,20,运算符优先级(con.),流程控制,ID:SCSJ001-Java Basic Syntax,2023/11/17,运算符、表达式、流程控制,22,流程控制,分支语句循环语句break,continue语句,2023/11/17,运算符、表达式、流程控制,23,分支语句,分支语句实现程序流程控制的功能,即根据一定的条件有选择地执行或跳过特定的语句Java分支语句分类i

10、f-else 语句switch 语句,2023/11/17,运算符、表达式、流程控制,24,分支语句(if语句),语法:if(条件表达式)/做某些事情 else/做某些事情,语法:if(条件表达式)/做某些事情else if(条件表达式)/做某些事情else/做某些事情,如果语句块里只有一句语句,代码可以简写为:if(条件表达式)/做某些事情else if(条件表达式)/做某些事情else/做某些事情,2023/11/17,运算符、表达式、流程控制,25,分支语句(if语句),public int max(int a,int b)int max=0;if(a b)max=a;else max=

11、b;return max;,int a=20;int b=30;int c=obj.max(a,b);System.out.println(c);结果:30,public int max(int a,int b)return(ab)?a:b;/如上为三目运算表达式,2023/11/17,运算符、表达式、流程控制,26,if语句例子,public void printInfo(int a)if(a 0,int a=8;obj.printInfo(a);结果:童年,2023/11/17,运算符、表达式、流程控制,27,if语句例子,public void printInfo(int a)if(a

12、0,int a=8;obj.printInfo(a);结果:童年 老年,注意,没有else if语句,2023/11/17,运算符、表达式、流程控制,28,分支语句(switch)(示例4-8),另外一种分支语句是switch语句。Switch语句是一种不需要求布尔值的分支语句。,语法:switch(expr1)case constant2:statements;break;default:statements;break;,public String getResponse(int a)String msg=“”;switch(a)case a 5:msg=“优秀”;break;case 4

13、:msg=“良好”;break;default:msg=“不及格”;break;return msg;,int a=5;String msg=obj.getResponse(a)System.out.println(msg);,结果:优秀,结果:良好,2023/11/17,运算符、表达式、流程控制,29,分支语句(switch),5分4分算优秀,2分3分是良好,其他是不及格如何完成?,public String getResponse(int a)String msg=“”;switch(a)case 5:msg=“优秀”;break;case 4:msg=“优秀”;break;case 3:

14、msg=“良好”;break;case 2:msg=“良好”;break;default:msg=“不及格”;break;return msg;,int a=5;String msg=obj.getResponse(a)System.out.println(msg);,2023/11/17,运算符、表达式、流程控制,30,循环语句,循环语句是用来控制那些根据运行期情况需要反复执行的语句系列。Java中的循环语句fordo/whilewhile,2023/11/17,运算符、表达式、流程控制,31,循环语句(for),for语句格式:for(init_expr;boolean test_expr

15、;alter_expr)statement or block;,public int calculate(int a)int s=0;for(int i=0;i=a;i+)s+=i;return s;,int a=100;int b=calculate(a);System.out.println(b);运行结果:5050,2023/11/17,运算符、表达式、流程控制,32,思考-练习(2分钟),打印如下图形:,*,2023/11/17,运算符、表达式、流程控制,33,思考-练习(2分钟),换一种打印,打印如下图形:,*,2023/11/17,运算符、表达式、流程控制,34,循环语句(whil

16、e),init_statement;while(boolean_expr)statement or block;alter_expr;,public int add()int s=0;int i=10;while(i=100)s=s+i;i+;/s+=i+;,2023/11/17,运算符、表达式、流程控制,35,循环语句(dowhile),dowhile语句格式:init_exprdo body_statement;alter_expr;while(test_expr);,2023/11/17,运算符、表达式、流程控制,36,break/continue语句,使用break语句可以终止swit

17、ch语句或者循环语句的执行break语句和标签(label)的结合可以用来指定从多个嵌套循环的某个循环中跳出。,out1:for(int i=1;i=9;i+)out2:for(int j=1;j=i;j+)if(j=2)break out1;/尽量不这样使用。System.out.println();,2023/11/17,运算符、表达式、流程控制,37,break/continue语句(con.),continue语句用来略过循环中剩下的语句,重新开始新的循环,这和break语句的完全跳出循环是不一样的。continue 仅仅出现在while/do/for语句的子语句块中。也可以使用和标签

18、结合的方式来选择需要终止的嵌套循环的层级。,2023/11/17,运算符、表达式、流程控制,38,小结,Java运算符表达式分支语句循环语句break,continue语句,2023/11/17,运算符、表达式、流程控制,39,作业,完成5!的计算,递归方法实现呢?统计int a=847574中位值为”1”的个数如果a=7,那么位值为1的个数为3如果a=9,那么位值为1的个数为2在屏幕上打印1-30个数,每7个数换行打印1000以内的所有素数打印10以内所有的偶数九九乘法口诀表编写一个if语句,根据int i的值(0-9,10-99,100-999)调用不同的方法do0_9(),do10_99(),do100_999();,2023/11/17,运算符、表达式、流程控制,40,作业,写一个程序,打印出从1加到100的和。(至少两种方式)写一个判断闰年的程序,要求根据一个年份,显示出Yes或No。写一个程序,打印出从1000到2009年之间的闰年。从控制台输出,方法定义如右下图:123456 234561 345612 456123 561234 612345,public void print(int num),

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号