运算符
自增自减运算符、初识Math类
package Base;
public class Demo05 {
public static void main(String[] args) {
//二元运算符
//Ctrl+D : 复制当前行到下一行
int a = 10;
int b = 20;
int c = 30;
int d = 40;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b);//数据类型为整形 10/40=0 (整数取整) 强制类型转换 10/40=0.5
}
}
long a = 123123123123l;
int b = 123;
short c = 10;
char d = 8;
System.out.println(a+b+c+d);//long 或者 double
System.out.println(b+c+d);//Int
System.out.println(c+d);//Int
// System.out.println(d);
//如果相加的数据类型中有long,那么数据类型就是long型
//如果没有long,其他的数据类型都为Int型(包括int char short)
关系运算符
//关系运算符返回的结果: 正确,错误 布尔值
//关系运算符,常跟if一起使用
int a = 10;
int b = 20;
int c = 33;
System.out.println(a>b);
System.out.println(a<b);
System.out.println(a==b);
System.out.println(a!=b);
System.out.println(c%a);//%号代表取余数--结果为3 (模运算)
自增自减运算符
- 一元运算符 ++ –
package operator;
public class Demo01 {
public static void main(String[] args) {
int a = 3;
int b = a++;//a = a + 1 =4
int c = ++a;//a = a + 1 =4 + 1 =5
System.out.println(a);//a=5
System.out.println(b);//b=3
System.out.println(c);//c=5
//幂运算 2^3 2*2*2 = 8 很多运算,我们会使用一些工具类来操作
double pow = Math.pow(2,3);
System.out.println(pow);
}
}
//逻辑运算符
//与(and) 或(or) 非(取反)
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));
/*输出
a && b:false
a || b:true
!(a || b):false
*/
//短路运算 判断第一个条件。如果条件1为假,则后面不执行
int c = 5;
boolean d =(c<4)&&(c++<4);//(c++<4)没有执行,如果执行c=6
System.out.println(d);
System.out.println(c);
/*
false
5
*/
/*
位运算符---效率极高
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^4
<< *2 -----左移右移代表二进制移的位数 <<3 >>1
>> /2
0 0000 0000
1 0000 0001
2 0000 0010
3 0000 0011
4 0000 0100
8 0000 1000
16 0001 0000
*/
System.out.println(2<<3);//2左移3位等于16 右移一位等于1
//输出:16
三元运算符及小节
int a = 10;
int b = 20;
a+=b;//a=a+b a=a-b
a-=b;
System.out.println(a);
//字符串连接符 + ,String
System.out.println(a+b);
System.out.println(""+a+b);//如果字符串在前面,后面进行拼接
System.out.println(a+b+"");//如果字符串在后面,前面依旧进行运算
//三元运算符 x?y:z
//如果x==true,则结果为y,否则结果为z
System.out.println("====================");
int score = 50;
String type = score < 60 ? "不及格":"及格";//必须掌握
//if运算符
System.out.println(type);
/*运算符优先级()
在java里最高的是一元运算符、加减乘除、按位与或
*/