1.算术运算符
Java算数运算符除通常的加(+)、减(-)、乘(*)、除(/)之外,
还包括取模运算(%)和自增(++)及自减(–)运算。

  1. 使用%运算符
    取模运算(%)意为取余数,可适用于整数char类型以及浮点数
float f = 3.14f;
		float p = 2.02f;
		char x = 'a';
		char y = 'b';
		System.out.println(f%p);//1.1200001
		System.out.println(y%x);//1
  1. 使用"++“和”–"运算符
    Java的自增运算符(++)和自减运算符(–)继承自C++,
    可以使变量的值加1或减1,但其写在变量前和变量后有不同的效果:
    (1)如果写在变量前表示在使用这个变量之前加1或减1
    (2)如果写在变量之后表示这个变量使用完之后再加1或减1
int a = 10, b = 20;
		int c1 = a++; // 先将a的值赋给c1,然后a再自加
		int c2 = ++b; // 先将b的值自加,然后再赋值给c2

2.关系运算符

关系运算符用于判断数据之间的大小关系。

包括大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(==)、

不等于(!=)六个运算符。

关系运算的结果为boolean类型,如果关系成立为true,否则为false。

3.逻辑运算符

逻辑运算建立在关系运算的基础之上,

逻辑运算符包括:与(&&)、或(||)和非(!)。

参与逻辑运算的变量或表达式都是boolean类型,运算结果也是boolean类型。

逻辑运算规则如下表所示:

Java算术表达式实现加减乘除 java计算算术表达式_Java算术表达式实现加减乘除


关于“短路逻辑”

Java逻辑运算遵循“短路逻辑”的原则:

(1)对于“&&”,当第一个操作数为false时,将不会判断第二个操作数,因为此时无论第二个操作数为何,最后的结果一定是false;

(2)对于“||”,当第一个操作数为true时,将不会判断第二个操作数,因为此时无论第二个操作数为何,最后的运算结果一定是true。

public static void main(String[] args) {
		//if(isTrue() | isFalse()) {} //输出两次It ran!,说明“|”运算符不管怎样条件都运行
		//if(isTrue() || isFalse()) {} //输出一次It ran!,说明“||”运算符只要有一个判断为true则不进行后续判断
		//if(isFalse() & isTrue()) {} //输出两次It ran!,说明“&”运算符不管怎样条件都运行
		if(isFalse() && isTrue()) {} //输出一次It ran!,说明“&&”运算符只要有一个判断为false则不进行后续判断
	}
	public static boolean isTrue() {
		System.out.println("It ran!");
		return true;
	}
	public static boolean isFalse() {
		System.out.println("It ran!");
		return false;
	}

4.赋值运算符

"=“称为赋值运算符,用于对变量赋值。关于赋值运算符,除了将右边的表达式计算出来赋给左边以外还具备如下特点:

赋值表达式本身也有值,其本身之值即为所赋之值。

在赋值运算符”="前加上其他运算符,即为扩展赋值运算符。

Java算术表达式实现加减乘除 java计算算术表达式_操作数_02


5.条件(三目)运算符

条件运算符又称“三目”运算符,其结构为:boolean表达式 ?表达式1 :表达式2

条件运算符的规则如下:

1.先计算boolean表达式;

2.如果boolean表达式的值为true,整个表达式的值为表达式1的值;

3.如果boolean表达式的值为false,整个表达式的值为表达式2的值。

条件(三目)运算符的嵌套

条件运算符可以嵌套使用,所谓嵌套是指在条件(三目)表达式:

“boolean表达式?表达式1:表达式2”中的表达式1或表达式2也是

条件(三目)表达式。

int a = -3;
		String r = a > 0 ? "正数" :(a == 0 ? "0":"负数");
		System.out.println(r); // 结果为负数

6.位运算符
Java中有六种位运算符:& 按位与,| 按位或,^ 按位异或,~取反,<<左移,>>右移
操作数只能为整型和字符型数据。

int t = 2 & 4;//0010 0100 输出0
        int z = 2 ^ 4;//0010 0100 异或输出6
        int m = 2 << 1;//10左移一位得100 输出4
        int x = -4 >>> 1;//无符号右移一位,缺位补0
        int y = -4 >> 1;//带符号右移一位,缺位补符号位