控制程序流程

一、使用 Java 运算符

1.运算符以一个或多个参数为基础,可生成一个新的值,是参数与普通方法调用不同的一种形式,但是效果是相同的

加号(+)、减号和负号(-)、乘号(*)、除号(/)以及等号(=)的用法与其他所有编程语言都是类似的。

二、优先级

1.运算符的优先级决定了存在多个运算符时一个表达式各部分的计算顺序,最简单的规则就是乘法和除法在加法和减法之前完成。

运算结果:

a 的表达式规则是 先除法 后加法 在做减法

b 的表达式规则是 先算括号里面的值  后除法  在做加法

三、赋值

1.赋值是用等号运算符(=)进行的。它的意思是“取得右边的值,把它复制到左边”。右边的值可以是任何常量、参数或者表达式,只要能产生一个值就行。

但左边的值必须是一个明确的、已命名的变量。也就是说,它必须有一个物理性的空间来保存右边的值。举个例子来说,可将 赋给一个变量(A=4;),但不可将任何东西赋给一个常量(比如不能4=A)。

对于基本数据类型的赋值是很简单的。基本类型存储了实际的数值,而并非指向一个对象的引用。   

所以在为其赋值时是直接将一个地方的内容复制到了另外一个地方。所以两个值是互相不受影响的。

但是在为对象赋值时,情况就不一样了。对一个对象操作时,我们操作的不是对象本身,而是对象的引用。

所以如果将一个对象赋值给另外一个对象,实际上是将这个对象的引用赋值给另外一个对象。此时两个对象指向的是同一个引用。

运行结果:

原本 n1 包含的对象的引用 0 在对 n1 赋值的时候就被覆盖了,也就丢失了。而这个不在被引用的 0 对象引用就会被垃圾回收期自动的清理。

这种特殊的现象被称为“别名现象”。

调用方法的别名问题

讲的是一个对象传递个方法时也会出现别名问题

运行结果:

算数操作符

java 的基本算数操作符和大多数程序设计语言是相同的。但是 java 也使用一种 C 和 C++ 的简化符号同时进行运算和赋值操作。

这种操作符后面紧跟着一个 = 号来表示,它对于 Java 中的所有操作符都适用。只要有其实际意义就可以。

例如:要将 x 加 4,并将结果赋值给它,可以这么写 x+=4

一元加、减操作符、

一元减号 (-) 和 一元加号 (+) 与二元减号和加号都是用相同的符号。根据表达式的书写格式,编译器会自动判断

是那种操作符。

一元减号用于转变数据的符号,而一元加号只是为了与一元减号相对应。但是它唯一的动作仅仅是将比较小

的类型的操作数提升为 int 。

自动递增和递减

Java 提供了大量的快捷运算符。这些快捷运算使得编码更方便,同时也使得编码更容易阅读,但有时也可能读起来更困难。

递增和递减运算符是两种很不错的运算符。其中递减运算符是 「--」,意味着减少一个单位。递增运算符是 「++」,意味着增加一个单位。

这两个操作符还有两个不同的操作方式,通常为前缀式和后缀式。前缀式会先执行运算在生成值,后缀式会先生成值,在执行运算。

运行结果:

操作符关系

关系操作符生成的是一个 boolean 结果,计算的是操作数之间的关系。如果关系是真实的,表达式会生成 true ;

如果关系是假的,表达式会生成 false 。关系操作符包括小于 (<) 、大于 (>)、小于或等于 (<=)、大于或等于 (>=)、

等于 (==) 以及不等于 (!=)。等于和不等于适合于操作所有的基本数据类型,而其他的比较不适用 Boolean 类型,

因为 true 和 false 比较大于小于没有实际意义。

运行结果:

数值是相同的怎么会输出这样的结果呢,是因为 (==) 和 (!=) 对比的是对象的引用地址,而不是对象的实际值。

这两个是 new 出来的不同对象。所以引用地址是不一样的。如果我们想比较两个对象的实际值该怎么办呢?

必须使用特殊的方法 equals()。但这个方法不适用于基本类型,基本类型直接用上边的两个就可以。

运行结果:

逻辑操作运算符

逻辑操作运算符 "与"(&&)、“或”(||)、“非”(!)根据参数的逻辑关系生成一个boolean值

运行结果:

上面的Random是

Random r = new Random()方法 是创建一个新的随机数生成器

20 预设为随机序列发生器的初始状态

r.nextInt(100); 是20 -100之间随机整数

短路

当使用逻辑运算符时,我们会遇到一种 “短路” 现象。即一旦能够明确无误的计算整个表达式的值,

就不在计算表达式余下的部分。因此整个表达式靠后的部分可能不会被计算到。如果所有的逻辑表达式都有一部分

不必计算,那将获得潜在的性能提升

运行结果:

直接常量

如果在程序中使用直接常量,编译器可以准确的知道要生成什么样的类型,有时候确实模棱两可的。

如果发生这种情况,必须对编译器加以指导,用于直接常量相关的字符来额外增加一些信息。

三元操作运算符 if-else

三元操作符也称之为条件操作符,它显得比较特殊,因为它有三个操作数,但却是操作符的一种,

因为它最终会产生一个值。采取的形式:

如果 b结果为 true,就计算 1 ,如果为 false ,就计算 2。它的结果也会是操作符最终产生的值。

和普通的 if else 语句很相似,但三元操作符更简洁。






猜你喜欢

转载自blog.csdn.net/u014341567/article/details/78735753