文档

Java™ 教程
隐藏目录
赋值、算术和一元运算符
路径:学习Java语言
课程:语言基础
章节:运算符

赋值、算术和一元运算符

简单赋值运算符

你将会遇到的最常见的运算符之一是简单赋值运算符 "="。你在 Bicycle 类中看到了这个运算符;它将右边的值赋给左边的操作数:

 int cadence = 0;
 int speed = 0;
 int gear = 1;

这个运算符也可以用于对象,用来赋值对象引用,在 创建对象 中有讨论。

算术运算符

Java 编程语言提供了执行加法、减法、乘法和除法的运算符。你很有可能通过它们在基本数学中的对应物来认识它们。唯一一个可能对你来说看起来新的符号是 "%",它将一个操作数除以另一个操作数,并返回余数作为结果。

运算符 描述
+ 加法运算符(也用于字符串连接)
- 减法运算符
* 乘法运算符
/ 除法运算符
% 取余运算符

以下程序,ArithmeticDemo,测试了算术运算符。

class ArithmeticDemo {

    public static void main (String[] args) {

        int result = 1 + 2;
        // 现在 result 是 3
        System.out.println("1 + 2 = " + result);
        int original_result = result;

        result = result - 1;
        // 现在 result 是 2
        System.out.println(original_result + " - 1 = " + result);
        original_result = result;

        result = result * 2;
        // 现在 result 是 4
        System.out.println(original_result + " * 2 = " + result);
        original_result = result;

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

        result = result + 8;
        // 现在 result 是 10
        System.out.println(original_result + " + 8 = " + result);
        original_result = result;

        result = result % 7;
        // 现在 result 是 3
        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

你也可以将算术运算符与简单赋值运算符结合起来,创建复合赋值。例如,x+=1;x=x+1; 都会将 x 的值增加 1。

加号运算符也可以用于连接(拼接)两个字符串,如下所示的ConcatDemo程序:

class ConcatDemo {
    public static void main(String[] args){
        String firstString = "This is";
        String secondString = " a concatenated string.";
        String thirdString = firstString+secondString;
        System.out.println(thirdString);
    }
}

在程序结束时,变量thirdString包含的是"This is a concatenated string.",并且被打印到标准输出。

一元运算符

一元运算符只需要一个操作数;它们执行各种操作,如将值增加/减少一,否定表达式,或者取反布尔值。

运算符 描述
+ 一元加号运算符;表示正值(数字本身就是正值,不过有时使用一元加号可以明确表示正值)
- 一元减号运算符;取反表达式
++ 自增运算符;将值增加1
-- 自减运算符;将值减少1
! 逻辑非运算符;取反布尔值

下面的程序UnaryDemo测试了一元运算符:

class UnaryDemo {

    public static void main(String[] args) {

        int result = +1;
        // result现在为1
        System.out.println(result);

        result--;
        // result现在为0
        System.out.println(result);

        result++;
        // result现在为1
        System.out.println(result);

        result = -result;
        // result现在为-1
        System.out.println(result);

        boolean success = false;
        // false
        System.out.println(success);
        // true
        System.out.println(!success);
    }
}

自增/自减运算符可以在操作数之前(前缀)或之后(后缀)应用。代码result++;++result;都会使result增加一。唯一的区别是前缀版本(++result)的值是增加后的值,而后缀版本(result++)的值是原始值。如果只是进行简单的自增/自减操作,那么选择哪个版本并不重要。但如果在较大的表达式中使用此运算符,你所选择的版本可能会有显著的差异。

下面的程序,PrePostDemo,演示了前缀/后缀一元递增运算符:

class PrePostDemo {
    public static void main(String[] args){
        int i = 3;
        i++;
        // 输出4
        System.out.println(i);
        ++i;			   
        // 输出5
        System.out.println(i);
        // 输出6
        System.out.println(++i);
        // 输出6
        System.out.println(i++);
        // 输出7
        System.out.println(i);
    }
}

上一页:运算符
下一页:相等、关系和条件运算符