资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,运算符、表达式、流程控制,Java,运算符,表达式,运算符(示例,4-1/4-2,),分割符:,,,;,,,,,(),算术运算符,:+,,,,*,,/,,,%,,,+,,,关系运算符,:,,,=,,,,,赋值运算符,:=,扩展赋值运算符,:+=,,,=,,*,=,,,/=,字符串连接运算符,:+,造型操作符:,(),递增,/,递减运算符,对于需要对操作数进行加,1,或减,1,操作时,可以使用递增或递减运算符,递增:,+,递减:,-,关系和布尔运算符(示例,4-3,),Java,使用,=,号来判断两个值是否相等,而用,!=,来判断是否不等,用,、,=,、,:右移运算符,将左操作数向右移动,移位个数由右操作数决定,:无符号左移位运算符,移位运算符(,con.,),移位运算符性质,适用数据类型,:byte,、,short,、,char,、,int,、,long,,,对低于,int,型的操作数将先自动转换为,int,型再移位,对于,int,型整数移位,ab,,,系统先将,b,对,32,取模,得到的结果才是真正移位的位数,对于,long,型整数移位时,ab,,,则是先将移位位数,b,对,64,取模,移位运算符,赋值运算符(示例,4-4,),赋值运算符“,=”,是最常用的一种运算符。它将等于号右边的表达式的值赋给左边的变量。,可以将其它的运算符和赋值运算符结合起来,作为“扩展”的赋值运算符:,+=,,,-=,,*,=,,,/=,,,%=,,,=,,,&=,,,|=,,,=,,,=,赋值运算符(,con.,),当,一个表达式中含有不同类型的数据时,需要用到类型转换。,类型转换存在两种不同的方式:,隐式转换,强制转换,类型转换(,con.,)(,示例,4-5,),隐式类型转换:见下图。在这个图中,黑色的实线表示在进行转换的时候,不会损失信息,而红色的虚线表示在转换时可能会引起信息的损失。,如果变量的长度不小于表达式的长度,则可进行赋值,称表达式是赋值兼容的。,byte,short,char,int,long,float,double,类型转换(,con.,),强制类型转换(,Cast,,,造型):强制类型转换,或者称为造型,用于显式的转换一个表达式的类型。,简单数据类型可以被进行强制类型转换。例如,将一个,double,类型的数据强制转换成,int,类型。,利用运算符“,(,type,)var,”,进行强制类型转换,运算符“,()”,中的,type,表示将,值,var,转换成的数据类型。,除了简单类型外,引用类型也可以进行强制类型转换。,作为字符串连接符的“,+”,(示例,4-6,),运算符“,+”,除了用于数值类型的加法运算法,在字符串类型(,String,),数据中,它还是一个用于连接字符串的特殊的运算符。,当“,+”,用在表达式中的时候,如果其中有一个操作数是字符串类型(,String,),则,Java,会自动将另一个操作数也转换成字符串,然后将这两个字符串相连起来生成一个新的字符串。,表达式,表达式是运算符和操作数的结合,它是任何一门编程语言的关键组成部分,表达式允许程序员进行数学计算、值的比较、逻辑操作以及在,Java,中进行对象的操作。,一些表达式的例子:,X,X+10,Y=x+10,Arr10,student.geName,(),表达式中运算符的结合性,所有的数学运算都认为是从左到右结合的,在,Java,中,大部分运算也是从左到右结合的,只有单目运算符、赋值运算符和条件运算符例外,乘法和加法是两个可结合的运算,也就是说,这两个运算符左右两边的操作符可以互换位置而不会影响到结果,表达式中运算符的优先顺序,下面的表格说明了各个运算符的优先顺序,优先级高的运算符放置在表的上部,而在同一行的运算符拥有同样的优先顺序。,除了单目运算符、赋值运算符以及条件运算符,其它的运算符都是从左到右结合的。,运算符优先级,运算符说明,Java,运算符,分割符,.(),;,单目运算符,+-!+,expr,-,expr,创建或类型转换,New(,type,),expr,乘法除法,*,/%,加法减法,+-,移位,关系,=,instanceof,运算符优先级(,con.,),运算符说明,Java,运算符,等价,=!=,按位,与,&,按位异或,按位或,|,条件与,&,条件或,|,条件,?:,赋值,=,运算符、表达式、流程控制,分支语句,循环语句,break,continue,语句,分支语句,分支语句实现程序流程控制的功能,即根据一定的条件有选择地执行或跳过特定的语句,Java,分支语句分类,if-else,语句,switch,语句,分支语句(,if,语句)(示例,4-7,),if,和,else,语句,if(,boolean,expression),statement or block;,或者:,if(,boolean,expression),statement or block;,else if (,boolean,expression),statement or block;,else,statement or block;,注意,,if,或,else if,后的条件表达式需要用括号括起来,if,语句例子,public class,IfTest,public static void main(String,args,),int,i;,i=Integer.parseInt(args0);,if(i50),else if(i=50),else,分支语句(,switch,)(,示例,4-8,),另外一种分支语句是,switch,语句。,Switch,语句是一种不需要求布尔值的分支语句。,switch,语句格式:,switch(expr1),case constant1:,statements;,break;,case constant2:,statements;,break;,default:,statements;,break;,循环语句,循环语句是用来控制那些根据运行期情况需要反复执行的语句系列。,Java,中的循环语句,for,do/while,while,循环语句(,for,)(,示例,4-9,),for,语句格式:,for(,init_expr,;,boolean,test_expr,;,alter_expr,),statement or block;,执行过程,首先计算表达式,init_expr,,,接着执行表达式,test_expr,,,若表达式,test_expr,的值,=,ture,,,则执行语句,statement,,,接着计算表达式,alter_expr,,,再判断表达式,test_expr,的值;依此重复下去,直到表达式,test_expr,的值,=false,For,流程图,=false,=true,表达式,test,值,结束,for,语句,计算表达式,alter,语 句,计算表达式,init,循环语句(,while,),while,语句格式,init_statement,while(,boolean_expr,),statement or block;,alter_expr,;,循环语句(,dowhile,)(,示例,4-10,),dowhile,语句格式:,init_expr,do,body_statement;,alter_expr,;,while(,test_expr,);,While/dowhile,表达式值,语 句,结束,语 句,表达式值,结束,While,语句,do-While,语句,break/continue,语句(示例,4-11/12/13,),使用,break,语句可以终止,switch,语句或者循环语句的执行,break,语句和标签(,label,),的结合可以用来指定从多个嵌套循环的某个循环中跳出。,break/continue,语句(,con.,),continue,语句用来略过循环中剩下的语句,重新开始新的循环,这和,break,语句的完全跳出循环是不一样的。,continue,仅仅出现在,while/do/for,语句的子语句块中。,也可以使用和标签结合的方式来选择需要终止的嵌套循环的层级。,小结,Java,运算符,表达式,分支语句,循环语句,break,continue,语句,
展开阅读全文