基本运算实例
-
算数运算
public static void main(String[] args) { //Ctrl + D :复制当前行到下一行 //+ - * / 加减乘除(二元运算符) int a = 10; int b = 20; int c = 15; System.out.println(a + b); //输出:30 System.out.println(a - b); //输出:-10 System.out.println(a * b); //输出:200 System.out.println(a / (double) b); //输出:0.5;若不强制转换则输出为0(保留整数部分) //% 模运算,取余 System.out.println(c % a);//输出:5 //++ -- 自增,自减 (一元运算符) int d = a++; //执行完这行代码后,先给d赋值,a再自增1 System.out.println(a);//输出:11 int e = ++a; //执行完这行代码前,a先自增1,再给e赋值 System.out.println(a);//输出:12 System.out.println(d);//输出:10 System.out.println(e);//输出:12 }
-
关系运算
public static void main(String[] args) { //关系运算符返回的结果:正确,错误(布尔值) int i = 1; int j = 2; System.out.println(i > j);//false System.out.println(i < j);//true System.out.println(i == j);//false System.out.println(i != j);//true }
-
逻辑运算
public static void main(String[] args) { //逻辑运算符:&& || ! //与(and) 或(or) 非(取反) boolean a = true; boolean b = false; System.out.println("a && b:" + (a && b)); //false;逻辑与运算:两个变量都为真,结果才为true System.out.println("a || b:" + (a || b)); //true;逻辑或运算:两个变量有一个为真,结果才为true System.out.println("!(a && b):" + !(a && b)); //false;如果是真,则变为假;如果是假,则变为真 //短路运算 System.out.println(b&&a);//false;逻辑与有假则假,先判断b为false,则不会再判断a,此情况称作短路 //验证短路运算 int c = 5; boolean d = (c<4)&&(c++<4); System.out.println(d); //false System.out.println(c); //输出:5 }
-
位运算
A = 0011 1100
B = 0000 1101
A&B = 0000 1100 (与运算,逐位对比,有0则0)
A|B = 0011 1101 (或运算,逐位对比,有1则1)
A^B = 0011 0001(异或运算,相同为0,相异为1)
~B = 1111 0010 (取反,0变1,1变0)
如何运算使2*8的运算最快(使用<<,位运算效率极快!!!)
<< 左移(移一次相当于*2);>> 右移(移一次相当于/2)
0000 0000 0
0000 0001 1 2>>1
0000 0010 2 2<<0
0000 0100 4 2<<1
0000 1000 8 2<<2
0001 0000 16 2<<3
-
条件运算
public static void main(String[] args) { //x ? y : z (三元运算符) //如果x==true,则结果为y,否则结果为z int score = 80; String type = score < 60 ? "不及格" : "及格"; System.out.println(type); //输出:及格 }
-
扩展赋值运算
public static void main(String[] args) { //扩展赋值运算符:+=,-=,*=,/= int a = 10; int b = 20; a += b; //等同于a = a + b System.out.println(a);//输出:30 a -= b; //等同于a = a - b System.out.println(a);//输出:10 }
-
整数类型运算
public static void main(String[] args) { long x = 12121212121212L; int y = 120; short z = 10; byte r = 6; System.out.println(x + y + z + r); //输出:12121212121348;Long类型(多个操作数中有一个为long类型,则结果为long类型) System.out.println(y + z + r); //输出:136;int类型(操作数中没有long类型时,结果为int类型) System.out.println(z + r); //输出16;int类型(操作数中没有long,int时,原本short类型会自动转为int类型,结果为int类型) }
-
字符串连接
public static void main(String[] args) { //字符串连接符 +(在+运算符两侧若有String类型,则会将操作数转换为字符串类型进行连接) System.out.println("" + a + b);//输出:1020 System.out.println(a + b + "");//输出:30;(先运算,再连接) }