算术运算符算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。下表列出了所有的算术运算符。操作符描述例子+相加-左右两边的值相加int a = b + c;-相减-左边的值减右边的值int a = b - c;*乘法-左右两边的值相乘int a = b * c;/除法-左边的值除以右边的值int a = b / c;%取余-左边的值除以右边的值的余数int a = b % c;++自增-操作数的值增加1i++;/++i;--自减-操作数的值减少1i--;/++i;代码练习public class Demo { public static void main(String[] args) { int a = 0; int b =10; int c= 3; System.out.println(a = b + c); //13 System.out.println(a = b - c); //7 System.out.println(a = b * c); //30 System.out.println(a = b / c); //3 System.out.println(a = b % c); //1 System.out.println(--c); //2 System.out.println(++b); //11 } } 关系运算符下表为Java支持的关系运算符运算符描述例子==检查如果两个操作数的值是否相等,如果相等则条件为真。(A == B)为假。!=检查如果两个操作数的值是否相等,如果值不相等则条件为真。(A != B) 为真。>检查左操作数的值是否大于右操作数的值,如果是那么条件为真。(A> B)为假。<检查左操作数的值是否小于右操作数的值,如果是那么条件为真。(A <B)为真。>=检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。(A> = B)为假。<=检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。(A <= B)为真。代码练习public class Demo { public static void main(String[] args) { int a = 10; int b = 20; System.out.println("a == b = " + (a == b) ); System.out.println("a != b = " + (a != b) ); System.out.println("a > b = " + (a > b) ); System.out.println("a < b = " + (a < b) ); System.out.println("b >= a = " + (b >= a) ); System.out.println("b <= a = " + (b <= a) ); } }位运算符下表列出了位运算符的基本运算,假设整数变量 A 的值为 60 和变量 B 的值为 13:操作符描述例子&如果相对应位都是1,则结果为1,否则为0(A&B),得到12,即0000 1100|如果相对应位都是 0,则结果为 0,否则为 1(A | B)得到61,即 0011 1101^如果相对应位值相同,则结果为0,否则为1(A ^ B)得到49,即 0011 0001〜按位取反运算符翻转操作数的每一位,即0变成1,1变成0。(〜A)得到-61,即1100 0011<<按位左移运算符。左操作数按位左移右操作数指定的位数。A << 2得到240,即 1111 0000>>按位右移运算符。左操作数按位右移右操作数指定的位数。A >> 2得到15即 1111>>>按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。A>>>2得到15即0000 1111代码练习public class Test { public static void main(String[] args) { int a = 60; /* 60 = 0011 1100 */ int b = 13; /* 13 = 0000 1101 */ int c = 0; c = a & b; /* 12 = 0000 1100 */ System.out.println("a & b = " + c ); c = a | b; /* 61 = 0011 1101 */ System.out.println("a | b = " + c ); c = a ^ b; /* 49 = 0011 0001 */ System.out.println("a ^ b = " + c ); c = ~a; /*-61 = 1100 0011 */ System.out.println("~a = " + c ); c = a << 2; /* 240 = 1111 0000 */ System.out.println("a << 2 = " + c ); c = a >> 2; /* 15 = 1111 */ System.out.println("a >> 2 = " + c ); c = a >>> 2; /* 15 = 0000 1111 */ System.out.println("a >>> 2 = " + c ); } }逻辑运算符下表列出了逻辑运算符的基本运算,假设布尔变量A为真,变量B为假操作符描述例子&&称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。(A && B)为假。||称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。(A || B)为真。!称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。!(A && B)为真。代码练习public class Test { public static void main(String[] args) { boolean a = true; boolean b = false; System.out.println("a && b = " + (a&&b)); System.out.println("a || b = " + (a||b) ); System.out.println("!(a && b) = " + !(a && b)); } }赋值运算符下面是Java语言支持的赋值运算符:操作符描述例子=简单的赋值运算符,将右操作数的值赋给左侧操作数C = A + B将把A + B得到的值赋给C+ =加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数C + = A等价于C = C + A- =减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数C - = A等价于C = C - A* =乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数C = A等价于C = C A/ =除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数C / = A,C 与 A 同类型时等价于 C = C / A%=取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数C%= A等价于C = C%A<< =左移位赋值运算符C << = 2等价于C = C << 2>> =右移位赋值运算符C >> = 2等价于C = C >> 2&=按位与赋值运算符C&= 2等价于C = C&2^ =按位异或赋值操作符C ^ = 2等价于C = C ^ 2| =按位或赋值操作符C | = 2等价于C = C | 2代码练习 int a = 10; int b = 20; int c = 0; c = a + b; System.out.println("c = a + b = " + c ); c += a ; System.out.println("c += a = " + c ); c -= a ; System.out.println("c -= a = " + c ); c *= a ; System.out.println("c *= a = " + c ); a = 10; c = 15; c /= a ; System.out.println("c /= a = " + c ); a = 10; c = 15; c %= a ; System.out.println("c %= a = " + c ); c <<= 2 ; System.out.println("c <<= 2 = " + c ); c >>= 2 ; System.out.println("c >>= 2 = " + c ); c >>= 2 ; System.out.println("c >>= 2 = " + c ); c &= a ; System.out.println("c &= a = " + c ); c ^= a ; System.out.println("c ^= a = " + c ); c |= a ; System.out.println("c |= a = " + c ); } }三元运算符该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。variable x = (expression) ? value if true : value if false代码练习public class Test { public static void main(String[] args){ int a , b; a = 10; // 如果 a 等于 1 成立,则设置 b 为 20,否则为 30 b = (a == 1) ? 20 : 30; System.out.println( "Value of b is : " + b ); // 如果 a 等于 10 成立,则设置 b 为 20,否则为 30 b = (a == 10) ? 20 : 30; System.out.println( "Value of b is : " + b ); } }