六、Java 中的运算符

1 赋值运算符

赋值运算符 = ,我们已经很熟悉了,它将右侧的值分配给左侧的变量。

2 算术运算符(四则运算)

运算符

描述

+

加法

-

减法

*

乘法

/

除法

%

取模(取余)

Java 编程语言提供了执行加、减、乘、除运算的运算符。唯一可能比较感到陌生的符号是"%",它将一个操作数除以另一个操作数,并将余数作为结果返回。

让我们跟随下面的代码,来尝试一下算术运算符。

public class Hello {
    public static void main(String[] args) {
        int result = 1 + 2;
        System.out.println("1 + 2 = " + result);
        int original_result = result;

        result = result - 1;
        System.out.println(original_result + " - 1 = " + result);
        original_result = result;

        result = result * 2;
        System.out.println(original_result + " * 2 = " + result);
        original_result = result;

        result = result / 2;
        System.out.println(original_result + " / 2 = " + result);
        original_result = result;

        result = result + 8;
        System.out.println(original_result + " + 8 = " + result);
        original_result = result;

        result = result % 7;
        System.out.println(original_result + " % 7 = " + result);
    }
}

输出:

1 + 2 = 3

3 - 1 = 2

2 * 2 = 4

4 / 2 = 2

2 + 8 = 10

10 % 7 = 3

如下面的程序所示,+ 运算符还可用于将两个字符串连接在一起:

public class Hello {
    public static void main(String[] args) {
        String firstString = "这是";
        String secondString = "一个被连接起来的字符串。";
        String thirdString = firstString + secondString;
        System.out.println(thirdString);
    }
}

输出:这是一个被连接起来的字符串。

3 复合赋值运算符

我们还可以将算术运算符与简单赋值运算符结合起来,创建复合赋值运算符。

运算符

示例

等价语句

+=

count += 2;

count = count + 2;

-=

price -= 0.5;

price = price - 0.5;

*=

total *= 1.25;

total = total * 1.25;

/=

average /= 4;

average =average / 4;

%=

days %= 7;

days =days % 7;

4 一元运算符

一元运算符只需要一个操作数;由此可推,我们之前学的,+-+=等运算符都是二元运算符

运算符

描述

+

正号;表示正值(不过,没有这个运算符的数字也是正值)

-

负号;否定表达式

++

递增运算符;使数值递增 1

--

递减运算符;使数值递减 1

递增/递减运算符可以在操作数之前(前缀)或之后(后缀)使用。代码 result++;++result; 的结果都是 result + 1唯一的区别是:前缀版本 (++result) 首先将自身 + 1,然后参与运算;而后缀版本 (result++) 先参与运算,在完成自身 + 1。如果只是执行简单的递增/递减,选择哪个版本并不重要。但如果在一个较大的表达式中使用这个运算符,选择哪一个版本可能会有很大的不同。

++

前置递增

a=2; b=++a;

a=3; b=3;

++

后置递增

a=2; b=a++;

a=3; b=2;

--

前置递减

a=2; b=--a;

a=1; b=1;

--

后置递减

a=2; b=a--;

a=1; b=2;

5 比较运算符

作用: 用于表达式的比较,并返回一个真值或假值

比较运算符有以下符号:

运算符

术语

示例

结果

==

相等于

4 == 3

false

!=

不等于

4 != 3

true

<

小于

4 < 3

false

>

大于

4 > 3

true

<=

小于等于

4 <= 3

false

>=

大于等于

4 >= 1

true

例子:

public class Hello {
    public static void main(String[] args) {
        int value1 = 1;
        int value2 = 2;
        if(value1 == value2)
            System.out.println("value1 == value2");
        if(value1 != value2)
            System.out.println("value1 != value2");
        if(value1 > value2)
            System.out.println("value1 > value2");
        if(value1 < value2)
            System.out.println("value1 < value2");
        if(value1 <= value2)
            System.out.println("value1 <= value2");
    }
}

输出:

value1 != value2

value1 < value2

value1 <= value2

6 逻辑运算符

作用: 用于根据表达式的值返回真值或假值

逻辑运算符有以下符号:

运算符

术语

示例

结果

口诀

!

!a

如果a为假,则!a为真; 如果a为真,则!a为假。

真变假,假变真

&&

a && b

如果a和b都为真,则结果为真,否则为假。

同真为真,有假则假

||

a || b

如果a和b有一个为真,则结果为真,二者都为假时,结果为假。

同假为假,有真则真

示例:

public class Hello {
    public static void main(String[] args) {
        int value1 = 1;
        int value2 = 2;
        System.out.println(value1 == 2 && value2 == 2);
        System.out.println(value1 == 2 || value2 == 2);
        System.out.println(!(value1 > value2));
    }
}

输出:

false

true

true