符号 | 含义 |
---|---|
+ | 加法 |
- | 减法 |
* | 乘法 |
/ | 除法 |
% | 余数 |
++ | 自增 |
-- | 自减 |
这些是常用的算数运算符,在java基础阶段,掌握这些就可
代码实例:
public class Demo01 { public static void main(String[] args) { //二元运算符 int a=10; int b=20; int c=25; int d=30; System.out.println(a+b); System.out.println(a-b); System.out.println(a*b); //当输出数为浮点型的时候,就需要把数据进行强制转换(https://www.cnblogs.com/lingstar/p/16441976.html) System.out.println(a/(double)b); //模运算,取余 System.out.println("输出c%a的结果:"+((double)c%a)); } }
输出结果:
30 -10 200 0.5 输出c%a的结果:5.0
自增自减是java中常用的运算符,下面以自增为例,自减也同样适用
代码示例:
public class Demo04 { public static void main(String[] args) { //运算符中的自增(++)与自减(--) 一元运算符 int a=5; int b=a++;//++在后,先赋值再自增 System.out.println(b); System.out.println(a); int m=3; int n=++m;//++在后,先自增,再进行赋值 System.out.println("============分割线================"); System.out.println(m); System.out.println(n); System.out.println("============分割线================"); //短路运算(了解即可) int c=10; boolean d=(c<4)&&(c++>4); //可以看得到前面c<4是不成立的,那么就不会执行后面的自增运算,造成短路运算- System.out.println(d); System.out.println(c); } }
输出结果:
5 6 ============分割线================ 4 4 ============分割线================ false 10
java基本运算符,实际上不是等于,它相当于把右边表达式的值赋给等号左边的运算数,除了基本的运算符之外,还有一些不常用的,感兴趣的可以自行先了解
常见的关系运算符有
符号 | 含义 |
---|---|
> | 大于 |
< | 小于 |
== | 等于 |
!= | 不等于 |
>= | 大于等于 |
<= | 小于等于 |
代码示例:
public class Demo03 { public static void main(String[] args) { //关系运算符返回的结果:正确,错误 布尔值 int a=10; int b=30; int c=101; System.out.println("输出a>b的结果:"+(a>b)); 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 输出a!=b的结果:true
符号 | 含义 | 运用 |
---|---|---|
&& | 逻辑与运算 | 全真为真,有假则假 |
|| | 逻辑或运算 | 有真为真,全假为假 |
! | 逻辑非运算 | 若真为假,若假为真 |
代码示例:
public class Demo06 { public static void main(String[] args) { //与 (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):true
位运算符
&并 |或 ^异或 ~取反
a=0011 1100 b=0000 1001 a&b=0000 1000 a|b=0011 1101
异或是同值为0,异值为1
a^b=0011 0111
取反,顾名思义,0为1,1为0
~b=1111 0110
左移<<
左移是不管正负,低位补0 。相当于*2,
24的二进制补码为0001 1000
左移两位后变为0110 0000
结果为96,也就是2422
右移>>
如果该数为正,则高位补0,若为负数,则高位补1 , 相当于/2
24的二进制补码为0001 1000
右移两位之后变为0000 0110
结果为6
左移右移效率极高
java中的三元运算符跟java中的if语句类似,可以说是if语句的一种简写
代码示例:
public class Demo09 { public static void main(String[] args) { //三元运算符 //x?y:z //如果x==true,则结果为y,否则结果为z int score=80; String type=score<80?"不及格":"及格";//一定掌握,三元运算符 System.out.println(type); } }
输出结果:
及格
既然是if语句的简写,那么用if语句也可以轻松实现
代码示例:
public class Demo09 { public static void main(String[] args) { int score=80; if(score<60){ System.out.println("不及格"); }else { System.out.println("及格"); } } }
输出结果:
及格