目录
运算符
赋值运算符
算数运算符
关系运算符也称比较运算符
逻辑运算符
条件运算符
运算符
赋值运算符
=、+=、-=、*=、/=、%=、>>=、<<=、&=、^=、|=
结合方向:自右向左结合。
赋值运算符优先级最低。
语法:变量名 = 表达式;
表达式的值通过赋值运算符“=”存储在变量中,表达式是符号与操作数的组合。
package cn.work.demo;
public class Dome03 {
public static void main(String[] args) {
//自左向右进行运算,数值1赋值给int型变量number,“=”是赋值运算符,“==”是比较运算符
int number01 = 1;
//加法赋值运算符,自左向右进行运算,等于number01 = nuber01 + 10;结果为11
number01 += 10;
System.out.println("number01+=的结果:"+number01);
//减法赋值运算符,自左向右进行运算,等于number01 = nuber01 - 1;结果为10
number01 -= 1;
System.out.println("number01-=的结果:"+number01);
//乘法赋值运算符,自左向右进行运算,等于number01 = nuber01 * 5;结果为50
number01 *= 5;
System.out.println("number01*=的结果:"+number01);
//除法赋值运算符,自左向右进行运算,等于number01 = nuber01 / 2;结果为25
number01 /= 2;
System.out.println("number01/=的结果:"+number01);
//取余赋值运算符,自左向右进行运算,等于number01 = nuber01 % 3;结果为1,
number01 %= 3;
System.out.println("number01%=的结果:"+number01);
}
}
算数运算符
算数运算符有:*、 /、 % 、+ 、-、++、--
结合方向(*、 /、 % 、+ 、-):自左向右
*、 /、 %):第三优先级
+ 、-):第四优先级
package cn.work.demo;
public class Dome03 {
public static void main(String[] args) {
//算术运算符:*、 /、 % 、+ 、-
//*、 /、 % 优先级高于+ 、-
int number02 = 10;
//乘法运算符,等于numer02 = 10 * 10;结果为100;
number02 = number02 * 10;
System.out.println("乘法运算符“*”,number02结果:"+number02);
//除法运算符,等于numer02 = 100 / 5;结果为20;
number02 = number02 / 5;
System.out.println("除法运算符“/”,number02结果:"+number02);
//取余运算符,等于numer02 = 20 % 7;取余数,结果为6;
number02 = number02 % 7;
System.out.println("取余运算符“%”,number02结果:"+number02);
//加法运算符,等于numer02 = 6 % 9;取余数,结果为15;
number02 = number02 + 9;
System.out.println("加法运算符“+”,number02结果:"+number02);
//减法运算符,等于numer02 = 15 % 5;取余数,结果为10;
number02 = number02 - 5;
System.out.println("减法运算符“-”,number02结果:"+number02);
}
}
自增运算符:++
++在变量前面是作为前置增量,是第二优先级。
++在变量后面是作为后置增量,是第一优先级。
++单独修饰变量时,++在变量前面或后面,变量的值都会 +1
++修饰变量参见运算时,++在变量前面时会先进行自增运算,然后进行赋值。
++修饰变量参见运算时,++在变量后面时会先进行赋值,然后进行自增运算。
自减运算符:--
--在变量前面是作为前置增量,是第二优先级。
--在变量后面是作为后置增量,是第一优先级。
--单独修饰变量时,--在变量前面或后面,变量的值都会 -1
--修饰变量参见运算时,--在变量前面时会先进行自减运算,然后进行赋值。
--修饰变量参见运算时,--在变量后面时会先进行赋值,然后进行自减运算。
package cn.work.demo;
public class Dome03 {
public static void main(String[] args) {
//自增自减运算符:++ --
//++ -- 单独修饰变量时,++ -- 在变量前后都会+1 -1;
int a = 10;
int b = 20;
System.out.println("----++ -- 单独修饰变量时---------->");
a++;//a的初始值为10,a++等于a = a + 1;a = 10 + 1;a = 11,此时a的结果为11;
System.out.println("++作为后置增量时,a的结果:"+a);
++a;//a = 11,a++等于a = a + 1;a = 11 + 1;a = 12,此时a的结果为12;
System.out.println("++作为前置增量时,a的结果:"+a);
b--;//b的初始值为20,b--等于b = b - 1;b = 20 - 1;b = 19,此时b的结果为19;
System.out.println("--作为后置增量时,b的结果:"+b);
--b;//b = 19,b--等于b = b - 1;b = 19 - 1;b = 18,此时b的结果为18;
System.out.println("--作为前置增量时,b的结果:"+b);
System.out.println("----++ -- 修饰变量参与运算时---------->");
int c = 50;
int d = 0;
//++在变量后面时会先进行赋值,然后进行自增运算。
d = c++;//计算过程:c把值赋值给d,d = 50;然后c进行自增运算,c的值+1,c=51;
System.out.println("c++,此时d的值:" + d + "\t此时c的值:" + c);
//++在变量前面时会先进行自增运算,然后进行赋值。
d = ++c;//计算过程:c先进行自增运算,c的值+1,c=52,然后把c的值赋值给d,d=52;
System.out.println("++c,此时d的值:" + d + "\t此时c的值:" + c);
//--在变量后面时会先进行赋值,然后进行自减运算。
d = c--;//计算过程:c把值赋值给d,d = 52;然后c进行自减运算,c的值-1,c=51;
System.out.println("c--,此时d的值:" + d + "\t此时c的值:" + c);
//--在变量前面时会先进行自减运算,然后进行赋值。
d = --c;//计算过程:c先进行自减运算,c的值-1,c=50,然后把c的值赋值给d,d=50;
System.out.println("--c,此时d的值:" + d + "\t此时c的值:" + c);
}
}
关系运算符也称比较运算符
关系运算符有:>、 >=、 <、 <=、 ==、 !=
结合方向:自左向右
>、 >=、 <、 <=): 第六优先级
==、 !=): 第七优先级
关系运算所产生的结果为boolean值,要么是true,要么是false。
逻辑运算符
逻辑运算符有:&、&&、 |、 ||、 ^、 !、
“&、&&” 左右两边的表达式结果都为true时,运算结果为true,其它情况运算结果为false。
“ & ” 不具有短路功能,当“&”左边表达式结果为false,“&”右边的表达式仍然正常进行运算。
“&&” 具有短路功能,“&&”左边表达式结果为false时,运算结果为false,“&&”右边表达式不再计算。
“|、 ||” 左右两边的表达式结果都为false时,运算结果为false,其它情况运算结果为true。
“ | ” 不具有短路功能,当“|”左边表达式结果为true,“|”右边的表达式仍然正常进行运算。
“ || ” 具有短路功能,“||”左边表达式结果为true时,运算结果为true,“||”右边表达式不再计算。
“ !” 后的表达式结果为true,则运算结果为false;表达式结果为false,则运算结果为true。
“ ^ ” 左右两边的表达式结果相同时,运算结果为false,左右两边的表达式结果不同时,运算结果为true。
package cn.work.demo;
public class Dome03 {
public static void main(String[] args) {
boolean a = true;
boolean b = true;
System.out.print("ab的值同为true时的结果为:");
System.out.println(a^b);
boolean c = false;
boolean d = false;
System.out.print("cd的值同为false时的结果为:");
System.out.println(c^d);
boolean e = true;
boolean f = false;
System.out.print("e的值都为true,f的值为false时的结果为:");
System.out.print(e^f);
System.out.println(f^e);
}
}
条件运算符
语法结构:
条件 ?表达式1 :表达式2;
可嵌套使用:比建议多层嵌套使用。
条件 ?(条件 ?表达式1 :表达式2) : (条件 ?表达式1 :表达式2);
运行规则:
条件为true时,执行表达式1;
条件为false时,执行表达式2;
package cn.work.demo;
public class Dome03 {
public static void main(String[] args) {
// 条件运算符:条件 ?表达式1 :表达式2;
int a = 20;
int b = 30;
int c = 40;
//选出ab两个值中的最大值,赋值给max输出
int max = a > b ? a : b; //a > b等于20 > 30,结果为假,执行表达式2,b赋值给max.
System.out.println("ab中最大值max:"+max);
//条件运算符嵌套
//选出abc三个值中的最大值,赋值给max输出
max = a > b ? (a > c ? a : c) : (b > c ? b : c);
System.out.println("abc中最大值max:"+max);
}
}