java--运算符
一.java运算符的种类
计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。我们可以把运算符分成以下几组:
- 算术运算符
- 关系运算符
- 位运算符
- 逻辑运算符
- 赋值运算符
- 其他运算符
二.算术运算符
算术运算符包括:+,-,*,/,%,++,--

示例一:普通的加减乘除和取余运算
package com.it_01; public class OperatorDemo { public static void main(String[] args) { int a = 3; int b = 5; //普通的加减乘除运算 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(3 / 4.0); System.out.println(3.0 / 4); /* * %:取余运算符。得到的是两个相除数据的余数。 * /:除法运算符。得到是两个相除数据的商。 * * %:判断两个数据是否整除。 */ System.out.println("a/b:"+(a/b)); System.out.println("a%b:"+(a%b)); } }
运行结果为:
a+b:8 a-b:-2 a*b:15 a/b:0 0.75 0.75 a/b:0 a%b:3
示例二:有字符和字符串参与的运算
package com.it_01; public class OperatorDemo2 { public static void main(String[] args) { //整数加法 int a = 10; int b = 20; System.out.println("a+b:"+(a+b)); System.out.println("--------------------"); //字符参与的加法 char c = '0'; char d = 'a'; //字符与数字相加,是ASCLL码进行相加 System.out.println("a+c:"+(a+c)); System.out.println("a+d:"+(a+d)); //字符与字符相加,也是对应ASCLL码进行相加 System.out.println("c+d:"+(c+d)); System.out.println("--------------------"); //字符串参与的加法 System.out.println("hello"+a); System.out.println("hello"+d); System.out.println("hello"+a+b);// "hello"+10,然后再和b进行拼接 System.out.println(a+b+"hello");// 10+20 = 30,然后再和"hello"进行拼接 } }
运行结果:
a+b:30 -------------------- a+c:58 a+d:107 c+d:145 -------------------- hello10 helloa hello1020 30hello
示例三:自增运算和自减运算
package com.it_01; /* * ++,--运算符:对变量做加1或者减1的操作。 * ++或者--既可以放在变量的后面,也可以放在变量的前面。 * 单独使用的时候,++或者--无论是放在变量的前面还是后面,结果是一样的。 * 参与操作的时候: * 如果++或者--在变量的后面,先拿变量参与操作,后变量做++或者-- * 如果++或者--在变量的前面,先变量做++或者--,后拿变量参与操作 */ public class OperatorDemo3 { public static void main(String[] args) { //单独使用自增或者自减的时候,++(--)放在前后的结果都是一样,结果都会加1 int a = 10; int b = 20; a++; ++b; System.out.println("a:"+a); System.out.println("b:"+b); System.out.println("---------------"); // 参与其他操作的时候,这个时候就会发生一些其他的变换 int c = 30; int d = 40; int c1 = ++c; int d1 = d++; System.out.println("c1:"+c1); System.out.println("d1:"+d1); } }
运行结果:
a:11 b:21 --------------- c1:31 d1:40
三.关系运算符
关系运算符包括:==,!=,>,>=,<,<=

package com.it_02; /* * 关系运算符: * ==,!=,>,>=,<,<= * 关系运算符的结果是boolean类型。 * * 注意: * 千万不要把==写成= */ public class OperatorDemo { public static void main(String[] args) { int a = 10; int b = 20; int c = 10; System.out.println(a == b); System.out.println(a == c); System.out.println("-----------------"); System.out.println(a != b); System.out.println(a != c); System.out.println("-----------------"); System.out.println(a > b); System.out.println(a > c); System.out.println("-----------------"); System.out.println(a >= b); System.out.println(a >= c); System.out.println("-----------------"); int x = 3; int y = 4; System.out.println(x == y); System.out.println(x = y);// 把y赋值给x,把x的值输出 System.out.println("-----------------"); boolean bb = (x == y); System.out.println("bb:"+bb); System.out.println("-----------------"); //报错 //boolean cc = (x = y); 布尔类型的值只能是true和false,不能和其他数据进行算术运算 int cc = (x = y); System.out.println("cc:"+cc); } }
运算结果:
false true ----------------- true false ----------------- false false ----------------- false true ----------------- false 4 ----------------- bb:true ----------------- cc:4
四.位运算符
ava定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。
位运算符作用在所有的位上,并且按位运算。假设a = 60,b = 13;它们的二进制格式表示将如下:


示例代码:
package com.it_03; public class OperatorDemo { 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 = 12 a | b = 61 a ^ b = 49 ~a = -61 a << 2 = 240 a >> 2 = 15 a >>> 2 = 15
五.逻辑运算符
下表列出了逻辑运算符的基本运算,假设布尔变量A为真,变量B为假

示例代码:
package com.it_04; /* * &&和&的结果一样 * ||和|的结果一样 * !是非,取相反的结果 * * &&和&的区别: * &&如果左边是false,右边不执行。 * &无论左边是true还是false,右边都会执行。 * 同理||和|的区别 和 &&和&的区别 是一样的 */ public class OperatorDemo { public static void main(String[] args) { int a = 10; int b = 20; int c = 30; System.out.println((a > b) && (a > c));// false && false System.out.println((a < b) && (a > c)); // true && false System.out.println((a > b) && (a < c)); // false && true System.out.println((a < b) && (a < c)); // true && true System.out.println("---------------"); System.out.println((a > b) || (a > c));// false || false System.out.println((a < b) || (a > c)); // true || false System.out.println((a > b) || (a < c)); // false || true System.out.println((a < b) || (a < c)); // true || true System.out.println("---------------"); int x = 3; int y = 4; // System.out.println((x++ > 4) & (y++ > 5)); // false & false System.out.println((x++ > 4) && (y++ > 5)); // false && false System.out.println("x:" + x); //x=4 System.out.println("y:" + y);// y=4,因为(x++ > 4)不成立,所以(y++ > 5)不会被执行 System.out.println("---------------"); System.out.println(!(x==y)); System.out.println("---------------"); int x1 = 5; int y1 = 6; // System.out.println((x1 >4) | (y1++ > 5)); // 即使左边已经验证为真,还是会验证右边的 System.out.println((x1 >4) || (y1++ > 5)); //验证左边为真后,就不会再验证后边 System.out.println("x1:" + x1); System.out.println("y1:" + y1); } }
运行结果:
false false false true --------------- false true true true --------------- false x:4 y:4 --------------- false --------------- true x1:5 y1:6
六.赋值运输符
下面是Java语言支持的赋值运算符:

示例代码:
package com.it_05; /* * 赋值运算符: * A:基本 = * B:扩展 +=,-=,*=,... * * +=: * a+=20; * 相当于 * a = (a的数据类型)(a + 20); */ public class OperatorDemo { public static void main(String[] args) { // 把10赋值给int类型的变量a int a = 10; // += 把左边和右边的数据进行运算,最后赋值给左边。左边的只能是变量 a += 10;// 相当于a = a + 10 System.out.println("a:" + a); System.out.println("----------------------"); short s = 10; // s += 20; // 相当于 s = s + 20; s = (short) (s + 20); System.out.println("s:" + s); //位运算符, // int c = 30; // System.out.println(c<<=2); } }
运行结果:
a:20
----------------------
s:30

浙公网安备 33010602011771号