一、算术运算符
分类:
+,-,*,/
/和%的区别:
/:获取两个数据相除的商。
%:获取两个数据相除的余数。
注意:
整数相除结果还是整数.
想要得到小数,就必须有浮点数参与运算.
public class OperateorDemo1 {
public static void main(String[] args) {
//定义俩个int类型的变量
int a = 5;
int b = 3;
System.out.println(a+b); //8
System.out.println(a-b); //2
System.out.println(a*b); //15
System.out.println(a/b); //1
System.out.println(a%b); //2
System.out.println("---------------");
System.out.println(5/4); //1
System.out.println(5.0/4); //1.25
System.out.println(5/4.0); //1.25
}
}
二、字符和字符串参加运算
字符参与加法运算, 其实就是拿该字符在计算机中存储所表示的数据来运算
ASCⅡ表 常用: 0-48 a-97 A-65
字符串参加运算, 其实这里不是加法运算,而是字符串的拼接。
System.out.println("hello" + "world"); //hello world
三、自增自减运算符
自增运算符(++)演示:
作用:
表示自身的值+1
用法:
单独使用:放在变量前或后结果一样,都是自身+1
参与运算:
在变量前,先自增,再以新值进行其它运算
在变量后,先以原值进行其它运算,再自增
//定义一个int类型的变量 int a = 5; //单独作用 a++; ++a; //下述输出语句的结果是 :把字符串“a: ” 和变量a的值进行拼接 System.out.println("a: "+a); //参与运算 //++在后 int b = a++; System.out.println("a:" +a); //6 System.out.println("b:" +b); //5 //参与运算 //++在前 int c = ++a; System.out.println("a:" +a); //6 System.out.println("b:" +b); //6
四、赋值运算符
基本的赋值运算符:
=
扩展的赋值运算符:
+=,-=,*=,/=
//基本的赋值运算符 int a= 10; // 把10赋值给a System.out.println("a:" +a); System.out.println("-----------------"); //扩展赋值运算符 //+=的作用;把左右俩边的数据相加:a = a +20 a +=20; System.out.println("a" +a); System.out.println("-----------------"); //扩展运算符的好处:自动强转 short s = 2; //s =s +1; //报错? 因为s + 1的结果是一个int类型的数据,你把int类型的数据赋值给short类型的变量,肯定不行 //解决 //方案一:强制类型转换 //方案二通过扩展赋值运算符实现 s+=3; System.out.println("s:" + s); //=的作用是赋值不是相等
五、关系运算符
关系运算符:
分类:
==,!= ,>,>=,<,<=
运算结果:
关系运算符操作完毕后的结果肯定是boole类型
注意事项:
千万不要把==写成=。
//定义三个变量 int a = 10; int b = 20; int c = 10; //==: 等于 System.out.println(a == b); System.out.println(a == c); System.out.println(a == c); System.out.println("------------------"); //!=:不等于 System.out.println(a !=b); //t System.out.println(a !=c); //f System.out.println("------------------"); //>:大于 System.out.println(a >b); //f System.out.println(a >c); //f System.out.println("------------------"); //>=:大于等于 System.out.println(a >=b); //f System.out.println(a >=c); //t System.out.println("------------------"); //注意: ==是判断是否相等, =是赋值是谁的意思 System.out.println(a == b); //f System.out.println(a =b); //20
六、逻辑运算符
分类:
逻辑与:&&,并且的关系,要求所有条件都满足,即有false则整体为false
逻辑或://,或者的关系,要求只要满足任意一个条件即可,即有true则整体为true逻辑非:!,取反的意思,以前为false,现在为true;以前为true,现在为false.
逻辑非:!,取反的意思,以前为false,现在为true,以前为true,现在false。
注意:
偶数个逻辑非,结果不变.
七、三元运算符
概述:
也叫三目运算符,即由三部分组成的.
格式:
关系表达式 ? 表达式 1 :表达式 2 ;
执行流程:
先判断关系表达式是否成立,
成立,执行表达式 1;
不成立,执行表达式 2;
//需求: 求俩个整数的最大值 //1.定义俩个变量记录俩个整数。 int a = 10; int b = 20; //2.通过三元运算符计算他们的最大值。 int max = (a >=b) ? a : b ; //3.将结果打印到控制台上。 System.out.println("max:"+max);
总结:
运算符优先级的表
优先级 | 运算符 | 结合性 |
---|---|---|
1 | ()、[]、{} | 从左向右 |
2 | !、+、-、~、++、-- | 从右向左 |
3 | *、/、% | 从左向右 |
4 | +、- | 从左向右 |
5 | ?、?、>>> | 从左向右 |
6 | <、<=、>、>=、instanceof | 从左向右 |
7 | ==、!= | 从左向右 |
8 | & | 从左向右 |
9 | ^ | 从左向右 |
10 | | | 从左向右 |
11 | && | 从左向右 |
12 | || | 从左向右 |
13 | ?: | 从右向左 |
14 | =、+=、-=、*=、/=、&=、|=、^=、~=、?=、?=、>>>= | 从右向左 |
原文:https://www.cnblogs.com/yjffish/p/14524848.html