Java运算符:赋值,算术和一元

时间:2020-01-09 10:34:46  来源:igfitidea点击:

这篇文章展示了Java中可用的赋值,算术和一元运算符。

Java中的赋值运算符

Java中的赋值运算符为" ="。它将右侧的值分配给左侧的操作数。例如

int i = 0;
double amount = 67.85;

赋值运算符也可以用于对象以分配对象引用。例如

Person per = new Person();
Square square = new Square(5);

Java中的算术运算符

Java中可用于基本数学运算的算术运算符为加法(+),减法(-),除法(/),乘法(*)和模数(%)。模运算符将一个操作数除以另一个,然后返回余数作为结果。

操作符说明
+加法运算符(也用于字符串连接)
减法运算符
*乘法运算符
/除法运算符
%余数运算符

Java算术运算符示例

public class JavaOperators {
  public static void main(String[] args) {
    int a = 5;
    int b = 7;
    
    //Addition
    int result = a + b;
    System.out.println("a + b = " + result);
    
    // Subtraction
    result = b - a;
    System.out.println("b - a = " + result);
    
    // Multiplication
    result = a * b;
    System.out.println("a * b = " + result);
    
    // Division
    result = a/2;
    System.out.println("a/2 = " + result);
    
    // Modulus
    result = b%5;
    System.out.println("b%5 = " + result);
  }
}

输出:

a + b = 12
b - a = 2
a * b = 35
a/2 = 2
b%5 = 2

字符串的重载+运算符

Java中的+运算符是重载的,它也可以用于将两个字符串连接在一起。

public class JavaOperators {
  public static void main(String[] args) {
    String str1 = "Hello";
    String str2 = "World";
    String joinStr = str1 + str2;
    System.out.println("Concatenated String- " + joinStr);
  }
}

输出:

Concatenated String- HelloWorld

Java中的复合赋值

我们还可以将算术运算符与赋值运算符结合使用,以在Java中创建复合赋值。例如x * = 5;等于x = x * 5;

Java复合分配示例

public class JavaOperators {

  public static void main(String[] args) {
    int a = 5;
    int b = 7;
    
    a+=1;
    System.out.println("a = " + a);
    
    // Subtraction
    b-=2;
    System.out.println("b  = " + b);
    
    // Multiplication
    a*=4;
    System.out.println("a = " + a);
    
    // Division
    b/=3;
    System.out.println("b = " + b);
    
    // Modulus
    a%=5;
    System.out.println("a = " + a);
  }
}

输出:

a = 6
b  = 5
a = 24
b = 1
a = 4

Java中的一元运算符

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

操作符说明
+一元加号运算符;表示正值(没有这个符号的数字都是正数)
一元减运算符;否定表达式
++增量运算符;将值增加1
减量运算符;将值减1
!逻辑补码运算符;反转布尔值

Java一元运算符示例

public class JavaOperators {

  public static void main(String[] args) {
    // minus 
    int a = -7;
    System.out.println("a = " + a);
    // plus (default so a = 7 also ok)
    a = +7;
    System.out.println("a = " + a);
    // increment operator
    a++;
    System.out.println("a = " + a);
    // decrement operator
    a--;
    System.out.println("a = " + a);
    boolean flag = false;
    // logical complement (inverting value of boolean)
    System.out.println("flag is " + !flag);
  }
}

输出:

a = -7
a = 7
a = 8
a = 7
flag is true

Java中的增量和减量运算符

Java中的一元运算符递增和递减运算符是特殊的,因为它们可以在操作数(后缀)之后或者操作数(前缀)(即a ++)之后应用;和++ a;两者均有效,并且导致a的值增加1.

这两种形式之间的区别在于,前缀版本(++ a)评估为增量值,而后缀版本(a ++)评估为原始值,然后递增。如果在较大表达式的一部分中使用此运算符或者将其分配给另一个变量,则选择哪种形式可能会有所不同。

public class JavaOperators {
  public static void main(String[] args) {
    int a = 7;
    int b = a++;
    System.out.println("b = " + b);
    System.out.println("a = " + a);
  }
}

输出:

b = 7
a = 8

如我们所见,a ++求值为分配给b的原始值,然后a递增。

public class JavaOperators {
  public static void main(String[] args) {
    int a = 7;
    int b = ++a;
    System.out.println("b = " + b);
    System.out.println("a = " + a);
  }
}

输出:

b = 8
a = 8

这里++ a;计算得出分配给b的递增值。