JAVA运算符
计算机编程不管那种编程语言,运算符都是必不可少的,常用的条件判断逻辑判断都离不开运算符;计算机的最基本用途之一就是执行数学运算。
Java给我们提供了很多的运算符来操纵变量。我们来看看常用的运算符有哪些吧。
1. 算术运算符
2. 关系运算符
3. 逻辑运算符
4. 赋值运算符
一,算术运算符
算术运算符用在数学表达式中,它们的作用和在数学中的作用一样。下表列出了常用的一些算术运算符。
- 算术运算符:+、-、*、/、。这几个和数学中的运算符作用一样
public class Test {
public static void main(String[] args) {
int a = 50;
int b = 80;
System.out.println("a + b = " + (a + b) );
System.out.println("a - b = " + (a - b) );
System.out.println("a * b = " + (a * b) );
System.out.println("b / a = " + (b / a) );
}
}
- 其中的:%为取模/取余,余数为0即为整除
//代码演示
public class Test {
public static void main(String[] args) {
int a=5%2;
System.out.println(a); //输出1,商2余1
int a1=8%2;
System.out.println(a1); //输出4,商4余0又被称为整除。
}
}
-
++/--:自增1/自减1,可在变量前也可在变量后
-
单独使用时,在前在后都一样
public class Test {
public static void main(String[] args) {
//++单独使用:
int a=5,b=5;
a++; //相当于a=a+1
++b; //相当于b=b+1
System.out.println(a); //6
System.out.println(b); //6
//--单独使用:
int a=5,b=5;
a--; //相当于a=a-1
--b; //相当于b=b-1
System.out.println(a); //4
System.out.println(b); //4
}
}
- 被使用时,在前在后不一样
- - a++的值为a----------(a--的值为a)
- - ++a的值为a+1--------(--a的值为a-1)
- 自增(++):将变量的值加1
++a和a++ : ++a是先加1再使用;a++ 是先使用再加1。
自减(- -) :将变量的值减1
- -a和a- - : - -a是先减1再使用;a- - 是先使用再减1。
public class Test {
public static void main(String[] args) {
//++被使用:
int a=5,b=5;
int c = a++; //1)记录下a++的值5 2)a自增1变为6 3)将记录的5赋值给c--了解
int d = ++b; //1)记录下++b的值6 2)b自增1变为6 3)将记录的6赋值给d--了解
System.out.println(a); //6
System.out.println(b); //6
System.out.println(c); //5
System.out.println(d); //6
//--被使用:
int e=5,f=5;
int g = e--; //e--的值为5,所以g就是5
int h = --f; //--f的值为4,所以h就是4
System.out.println(e); //4
System.out.println(f); //4
System.out.println(g); //5
System.out.println(h); //4
//注意
int cc=8;
int dd=c++;//dd的值为8,cc++为8赋值给dd的同时cc=cc+1;
System.out.println(cc); //这里输出的结果为:cc=9,dd=8。
}
}
二,关系运算符
下表为Java常用的关系运算符
- 关系运算的结果为boolean型,关系成立则为true,关系不成立则为false
int a=5,b=10,c=5;
boolean b1 = a>b;
System.out.println(b1); //false
System.out.println(c<b); //true
System.out.println(b>=a); //true
System.out.println(a<=c); //true
System.out.println(a==c); //true
System.out.println(a!=c); //false
三,逻辑运算符
下表列出了逻辑运算符的基本运算,假设布尔变量A为真,变量B为假
- 逻辑:&&、||、!
- &&:短路与(并且),两边都为真则为真,见false则false
- 若第1个条件为false,则发生短路(后面的不执行了)
int a=5,b=10,c=5;
System.out.println(b<=c && b>a); //第一个条件为false&&第二个条件为true;结果为false
System.out.println(a==b && c>b); //false&&false;结果为false
System.out.println(b!=c && a<b); //true&&tru;结果为true
//演示短路:
boolean b3 = a>b && c++>2;//第一个条件为false
System.out.println(b3); //所以结果为false
System.out.println(c);
//c的值为5,因为&&当两条件同时满足时才为ture(真),
所以当第一个结果为false(假)的时候就发生了短路,c++>2并没有被执行
(这是Java的一个程序优化特性)
- ||:逻辑或(或者),有真则为真,见true则true
- 若第1个条件为true,则发生短路(后面的不执行了)
int a=5,b=10,c=5;
System.out.println(b>=a || b<c); //true || false 结果为:true
System.out.println(b<=c || b>a); //false|| true 结果为:true
System.out.println(b!=c || a<b); //true || true 结果为:true
System.out.println(a==b || c>b); //false|| false 结果为:false
//演示短路:
boolean b4 = a<b || c++>2; //第一个条件为true
System.out.println(b4); //结果为true
System.out.println(c); //5,发生短路了(c++>2并没有被执行)
- (!):逻辑非(取反),非真则假,非假则真
- 逻辑运算是建立在关系运算的基础之上的,逻辑运算的结果也是boolean型
int a=5,b=10,c=5;
boolean b2 = !(a>b); //!的优先级高,所以需要将a>b括起来
System.out.println(b2); //b2结果为false取反,输出结果为true
System.out.println(!(a<b)); //!true=false
四,赋值逻辑运算符
下面是Java常用的一小部分赋值运算符:
-
简单赋值运算符:=
-
扩展赋值运算符:+=、-=、*=、/=、%= ---扩展赋值自带强转功能
int a = 5;
a += 10; //相当于a=a+10
System.out.println(a); //输出结果为15
a *= 2; //相当于a=a*2
System.out.println(a); //输出结果为30
a /= 6; //相当于a=a/6
System.out.println(a); //输出结果为5
注意:
short s = 5;
s = s+10; //编译错误,需强转,改为:s=(short)(s+10);(这里运算的时候自动转为int型,int型向short赋值需要强制转换类型)
s += 10; //相当于: s=(short)(s+10);(这运算符自带强转功能)
条件/三目:boolean?数1:数2
-
语法: boolean?数1:数2
- 执行过程:
整个表达式是有值的,它的值要么是?号后的数1,要么是:号后的数2
- 计算max的值:
若为true,则整个表达式的值为?号后的数1
若为false,则整个表达式的值为:号后的数2
int a=8,b=55; //用三目运算符判断两个数的大小。
int max = a>b?a:b;//如果 a 大于 b 成立,则max的值 为 a,否则为 b
System.out.println("max="+max);//输出结果为55.
五,运算符优先级
当多个运算符出现在一个表达式中,谁先谁后呢?下图是常用运算符的优先级,当然运算符还有很多这里只是简单列举提一下,不是很严谨见谅。(表中优先级从高到低往下排列)
知识浅薄望路过的大佬指点一二φ(゜▽゜*)♪(´▽`ʃ♡ƪ)( •̀ ω •́ )y₯₯₯₯