计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。我们可以把运算符分成以下几组:
算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。
public class Demo1 {
public static void main(String[] args) {
//a+b 二元运算符
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);
}
}
public class Demo2 {
public static void main(String[] args) {
long a = 1231231321321L;
int b = 25462546;
short c = 50;
byte d = 10;
//结果里有ling类型得出的数为long类型,如果是double类型得出的数为double类型;
//如果得出的数没有long类型或者double类型,默认为int类型;
System.out.println(a+b); //long类型
System.out.println(c+d); //int类型
System.out.println(d+c); //int类型
}
}
public class Demo3 {
public static void main(String[] args) {
//关系运算符返回结果:正确or错误
int a = 10;
int b = 20;
int c = 21;
//取余:模运算,21/10=2...1
System.out.println(c%a);
}
}
关系运算符
public class Demo3 {
public static void main(String[] args) {
//关系运算符返回结果:正确or错误
int a = 10;
int b = 20;
int c = 21;
System.out.println(a>b);
System.out.println(a
自增自减运算符
解析
- int b = ++a; 拆分运算过程为: a=a+1=4; b=a=4, 最后结果为b=4,a=4
- int d = --c; 拆分运算过程为: c=c-1=2; d=c=2, 最后结果为d=2,c=2
public class Demo4 {
public static void main(String[] args) {
// ++ -- 自增,自减 一元运算符
int a = 3;
int b = a++; //执行完这行代码后,先给b赋值,再自增
//a++ a = a + 1
System.out.println(a);
int c = ++a; //执行完这行代码后,先自增,再给b赋值
//a++ a = a + 1
System.out.println(a);
System.out.println(b);
System.out.println(c);
//幂运算2的3次方,2*2*2=8
double pow = Math.pow(2, 3);
System.out.println(pow);
}
}
逻辑运算符
//逻辑运算符
public class Demo5 {
//与(and)或(or)非(取反)
public static void main(String[] args) {
boolean a = true;
boolean b = false;
System.out.println("a && b:" + (a && b)); //“&&”逻辑与运算:两个变量都为真,结果才是true
System.out.println("a || b:" + (a || b)); //“||”逻辑或运算:两个变量有一个为真则结果为true
System.out.println("! (a && b):" + ! (a && b)); //“!”如果是真,则变假,如果是假则变真
//短路运算
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(c);
System.out.println(d);
//该程序使用到了短路逻辑运算符(&&),首先判断 c<4 的结果为 false,则 b 的结果必定是 false,所以不再执行第二个操作 c++<4 的判断,所以 c 的值为 5。
}
}
位运算
public class Demo6 {
public static void main(String[] args) {
System.out.println(2<<3); //2*2*2
}
}
三元运算符
//偷懒
public class Demo7 {
public static void main(String[] args) {
int a = 10;
int b = 20;
a+=b; //a = a+b
a-=b; //a = a-b
System.out.println(a);
//字符串连接符 + ,String(在+号运算符两侧,只要有一方出现了字符串类型会变成String类型)
System.out.println(""+a+b);
System.out.println(a+b+"");
}
}
条件运算符
public class Demo8 {
public static void main(String[] args) {
// x ? y : z
//如果x==true,则结果位y,否则结果位z
int score = 50;
//如果成绩小于60成立,则不及格、否则及格
String type = score <60 ? "不及格" : "及格"; //必须掌握
System.out.println(type);
}
}
Java运算符优先级
【狂神说Java】Java零基础学习视频通俗易懂



