您的位置:首页 > 其它

第三章 控制程序流程(Controlling Program Flow)

2005-12-26 13:34 369 查看
java运算符(operator
l java用运算符来控制数据,用执行控制语句来决定l 绝大部分运算符作用于基本类型(primitive type),但是“=”、“==”、“!=”可以作用于任何对象,此外,String类也支持“+”和“+=”l 赋值使用“=”,如果是基本类型,比如A=B,是把B中的内容复制一份放到A中,而如果是物体对象,比如C=D,那么只是复制reference,把C和D都指向D,简单地说,如果是基本类型,那么A=B之后,A和B是各自的储存空间,改变任意一个都不会影响另一个,而如果是物体对象,C=D之后,改变C也会改变D,改变D也会改变C内容l 物体对象C=D现象通常被称为“aliasing(别名)”,这是java对于物体的基本处理模式,如果不希望这样,那么应该直接让其内部数据成员复制,比如C.i=D.i

自动递增和自动递减
l 递增和递减不但修改变量的值,还会把这个值返回给此变量l 前置(prefix):操作过程是先运算再返回l 后置(postfix):操作过程是先返回再运算l 关系运算符(6种):<、>、<=、>=、==、!=,最后两个可以作用于所有内建类别l 对于物体对象,==和!=是比较的Object reference,要比较两个对象的实际内容,必须使用每个类都有的,专门的equals()方法l 与C/C++不同,AND、OR、NOT只能用于Boolean值,不能用于非Boolean值,比如!Il 如果把boolean值当作String来使用,会被自动转换成相应的文本,可以把int换成除boolean之外的任何基本数据l short circuiting短接无须对后面的语句就能做出判断其逻辑值if((i>0)&&(j>0)&&(k>0)) 如果第一个i>0不成立,那么整个就为false了l 位运算:&与运算 |或运算 ^异或运算 ~非运算l Boolean值不能进行非运算,不能移位l char、byte、short进行移位时,会自动提升为int,但如果是byte或short移位后可能会不准确l <<左移,底位用零填充;>>右移,如果这个数为正,高位用0填充,如果为负,高位用1填充;java有不带正负号的右移>>>,无论正负号,高位均填充0l 三目运算,比如 3<4?I=7:I=8l java允许你将任意一种基本类型转换成另一种基本类型,但是boolean型不能接受强制转换,class对象也不能接受的l float f1=1F; float f2=1e-45f 表示1*10的-45次方,还会转换成double型l java的每一中基本类型都有相同的容量大小,所以不用使用sizeof()函数,也没有l boolean类型只能是赋给true和false,或者检验是否为真和假,不能进行加减,不能进行别的运算l 强制转换只能由小到大,不能由大到小的转换

流程控制
l java不允许使用数字做为判断条件,必须使用boolean类型,比如if(2)是不允许的l do-while和while的区别在于,前者至少执行一次,后者则要根据判断语句来执行l java中没有goto语句,但是和循环使用的break和continue结合使用了label1: continue label1; break label1;l java中使用label的唯一理由是:想要循环体中的continue或break越过一层以上的循环体l switch …case其switch表达式一定是能识别出整数值的表达式,非整数类别不行l 从float或double转换成int型,是完全舍弃小数部分,而不是四舍五入
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: