JAVA基础(三)

           ------------------------------------------------------------------运算符-------------------------------------------------------------------------------------------------

 

算数运算符

算术运算符主要用于进行基本的算术运算,如加法、减法、乘法、除法等。

运算符

运算规则

范例

结果

+

正号

+3

3

+

2+3

5

+

连接字符串

“中”+“国”

“中国”

-

负号

int a=3;-a

-3

-

3-1

2

*

2*3

6

/

5/2

2

%

取模

5%2

1

++

自增

int a=1;a++/++a

2

--

自减

int b=3;a--/--a

2

--

   算数运算符中的++  ——

  i++运算符,会在原有值的基础上自增1;

      声明  a=1;

a++   先赋值运算,在自己增加一,结果a=2;

++a    先自增加一,在赋值,结果a=2

 

 

 l - -运算符,会在原有值的基础上自减1。

   声明a=1

a- -   先运算,在自己减一,a这是0;

-   -a   先自减一,在赋值,a=0;

赋值运算符

赋值运算符是指为变量或常量指定数值的符号。如可以使用 “=” 将右边的表达式结果赋给左边的操作数

运算符

运算规则

范例

结果

=

赋值

int a=2

2

+=

 

加后赋值

int a=2,a+=2,(a=a+2)

4

-=

减后赋值

int a=2,a-=2

(a=a-2)

0

*=

乘后赋值

int a=2,a*=2

(a=a*2)

4

/=

整除后赋值

int a=2,a/=2

1

%=

取模后赋值

int a=2,a%=2

a=a%2

0

=: int a=2;

将等号右边的值赋给左边的a;

注意:诸如+=这样形式的赋值运算符,会将结果自动强转成等号左边的数据类型。

* 赋值运算符

 * +=, -=, *=, /=, %= :

 * 上面的运算符作用:将等号左右两边计算,会将结果自动强转成等号左边的数据类型,再赋值给等号左边的

 * 注意:赋值运算符左边必须是变量

 */

publicclass OperatorDemo2 {

    publicstaticvoid main(String[] args) {

        byte x = 10;

        x += 20;// 相当于 x = (byte)(x+20);

        System.out.println(x);

    }

}

X=30;

比较运算符

比较运算符用于判断两个数据的大小,例如:大于、等于、不等于。比较的结果是一个布尔值( true 或 false )。

运算符

运算规则

范例

结果

==

相等于

4==3

False

!=

不等于

4!=3

True

小于

4<3

False

大于

4>3

True

<=

小于等于

4<=3

False

>=

大于等于

4>=3

True

1、  > 、 < 、 >= 、 <= 只支持左右两边操作数是数值类型

2、  == 、 != 两边的操作数既可以是数值类型,也可以是引用类型

注意

赋值运算符的 = 符号,是用来将 = 符号右边的值,赋值给 = 符号左边的变量;

比较运算符的 == 符号,是用来判断 == 符号 左右变量的值是否相等的

逻辑运算符

逻辑运算符主要用于进行逻辑运算。

运算的最终结果为布尔值truefalse

运算符

运算规则

范例

结果

&

与(false后继续走后面条件)

false&true

False

|

false|true

True

^

异或

(两边值相同为false)

true^flase

True

!

!true

Flase

&&

短路与 (短路后不再执行此该条件)

false&&true

False

||

短路或

false||true

True

 

 

 

 

举个例子

我们可以从“投票选举”的角度理解逻辑运算符:

1、 :要求所有人都投票同意,才能通过某议题

2、 :只要求一个人投票同意就可以通过某议题

3、 :某人原本投票同意,通过非运算符,可以使其投票无效(取反)

4、 异或:有且只能有一个人投票同意,才可以通过某议题

当使用逻辑运算符时,我们会遇到一种很有趣的“短路”现象。(可以理解为满足其一,终止判断)

  &&

譬如:( one > two ) && ( one < three ) 中,如果能确定左边 one > two 运行结果为 false , 则系统就认为已经没有必要执行右侧的 one < three 啦。

短路与 和 与 的区别:

1. 与&  第一个条件无论结果如何,都会执行第二个条件,

2. 短路与&&   第一个条件判断出false,不在走第二个条件,判断出为true,则就会走第二条件。

  ||

同理,在( one > two ) || ( one < three ) 中,如果能确定左边表达式的运行结果为 true , 则系统也同样会认为已经没有必要再进行右侧的 one < three 的执行啦!

短路或或区别

1.第一个条件为true,不执行第二个条件

 第一个条件为false,执行第二个条件  

2.短路或||  true,则运算结果为true

 

三元运算符

用来完成简单的选择逻辑,即根据条件判断,从两个选择中选择一种执行。

使用格式:

(条件表达式)?表达式1:表达式2;

ab:c;

运算规则:

a) 判断条件表达式,结果为一个布尔值。

b) true,运算结果为表达式1

c) false,运算结果为表达式2

如:

int a = 10;  int b = 20;

a==b?10:20; 结果为20

多个比较(得出最大值)

          int a=1;

            int b=2;

            int c=3;

           int max=(a>=b?a:b)>=c?(a>=b?a:b):c;

           System.out.println(max);

                             

   

posted @ 2019-07-23 11:08  腊月出去玩  阅读(174)  评论(0编辑  收藏  举报