java-2021-02-27

1、在下面的例程中,先分析第7行赋值号=右边的s+2,2为int类型,占4个字节,而s为short类型,占两个字节,系统自动提升s,所以相加完后实际上结果为int类型的3,然后再赋值给左边的s,但是由于s本来没被动过,所以还是short类型,这样就容纳不了int类型,因此系统报错。2、如果将上面赋值号改成“+=”,结果就截然不同了,首先要注意的一点是,“+=”是一个整体,即它们合起来构成一个运算符而不是两个运算符,它与“=”的最大区别在于会把左右两个操作数的运算结果赋值给左边时进行自动类型转换。3、逻辑运算符就是为了说明两者间存在着关系,如果想表达1<x<5,但是直接将这一句写在编辑器中,编译运行是通不过的,因为系统和语法不支持这样的表达,但是很明显,该语句存在着两种关系:(1<x)以及(x<5),所以逻辑运算符的诞生就是为了连接并且描述这种类型的关系,于是:(1<x)&(x<5)。

4、上面具的是单与&,但是逻辑运算符中还存在双与&&,为了说明两者区别,先看如下例子:

(0)int x = 6;

(1)(4<x)&(x<5),true&false=false

(2)(4<x)&&(x<5),true&&false=false

(3)(8<x)&(x<10),false&true=false

(4)(8<x)&&(x<10),false&&不判断=false

通过上面过程可以看到,单与&会对左右两个条件都进行判断,然后才得到结果,而双与&&是只要一碰到能得出结果的时候就不再继续判断后面条件。

posted @ 2021-02-27 20:45  migui  阅读(56)  评论(0编辑  收藏  举报