运算符:一元,二元,三元,逻辑
二元运算符
package com.base02;
//运算符
public class Demo01 {
public static void main(String[] args) {
//二元运算符
//Ctrl + D :复制当前行到下一行
int a=10;
int b=20;
int C=25;
int d=25;
System. out . println(a+b);
System.out . println(a-b);
System. out . println(a*b);
System.out. println(a/b); //0 int 四舍五入
System.out. println(a/ (double)b);
System.out. println("=========================================");
Long A = 123123123123123L;
int B = 123;
short c = 10;
byte D =8;
//取高级别数据类型
System. out . println(A+B+c+D); //Long
System. out . println(B+c+D); //Int
System. out . println((c+D)); //Int
System.out. println("=========================================");
//关系运算符返回的结果:正确, 错误 布尔值
int x=10;
int y=20;
int z=21;
System. out . println(z%x); //取余数,z/x 21/10 2..1
System. out . println(x>y);
System. out . println(x<y);
System. out . println(x==y);
System. out. println(x!=y);
}
}
a++ ++a a-- --a
package com.base02;
//a++ ++a a-- --a
public class Demo02 {
public static void main(String[] args) {
//++--自增,自减一元运算符
int a = 3;
int b = a++; //执行完这行代码后,先给b赋值,再自增
// a = a + 1;
System.out.println(a);
System.out. println("=========================================");
//a = a+ 1;
int c = ++a;//执行完这行代码前,先自增,再给b赋值
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out. println("=========================================");
//幂运算2^32*2*2 = 8
double pow = Math.pow(3,2);
System.out.println(pow);
}
}
逻辑运算,位运算
package com.base02;
//逻辑运算,位运算
public class Demo03 {
public static void main(String[] args) {
//与(and)&& 或(or)|| 非(取反)!()
boolean a = true;
boolean b = false;
System.out.println("a && b: "+(b&&a));//逻辑与运算:两个变量都为真,结果才为true
System.out.println("a || b:"+(a||b));//逻辑或运算:两个变量有一个为真,则结果才为true
System.out.println("! (a &8 b):"+!(a&&b));//如果是真,则变为假,如果是假则变为真
//短路运算
int c = 5;
boolean d = (c<4)&&(c++ < 4); //前面为假,后面就不算了,短路,直接整式为假
System.out.println(d);
System.out.println(c);
System.out. println("=========================================");
//位运算
/*
A= 0011 1100
B =0000 1101
------------------
A&B = 0000 1100
A/B = 0011 1101
A^B = 0011 0001
~B = 1111 0010
2*8 = 16 2*2*2*2 效率极高! ! !
<< *2 左移
>> /2 右移
0000 0000 0
0000 0061 1
6000 0016 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0080 16
*/
System.out.println( 2<<3);
System.out. println("=========================================");
int A = 10;
int B = 20;
A+=B; //a = a+b
A-=B; //a = a-b
System.out.println(A);
//字符串连接符 + , string
System.out.println( ""+A+B);
System.out.println( A+B+"");
}
}
三元运算
package com.base02;
public class Demo04 {
//三元运算符
public static void main(String[] args) {
//x ? y : z 如果x==true,则结果为y,否则结果为z
int score = 50;
String type = score < 60 ? "不及格" : "及格";//必须掌握
// if
System.out.println(type);
}
}