1.算术运算符:+,-,*,/,%,++,--
1.%:取模/取余,余数为零即整除
System.out.println(5%2); //1,商2余1
System.out.println(8%2); //0,商4余0-----整除
System.out.println(2%8); //2,商0余2
2.++/--:自增1/自减1,可在变量前也可在变量后
2.1.单独使用时,在前在后都一样
2.2.被使用时在前在后不一样,a++的值为a,++a的值为a+1;a--的值为a,--a的值为a-1
//被使用++
int a1=5,b1=5;
int c1 = a1++; //1)将a1++的值赋值给c1,2)将a1的值自增1变为6(先后顺序有意义)
//a1++的值为a1(5),所以c1的值为5
int d1 = ++b1; //1)将b1的值自增1变为6,2)将++b1的值赋值给b1(先后顺序有意义)
//++b1的值为b1+1(6),所以d1的值为6,
System.out.println(a1); //输出为6,只要加了就一定增1
System.out.println(b1); //输出为6,只要加了就一定增1
System.out.println(c1); //输出为5
System.out.println(d1); //输出为6
2.关系运算符
1.>(大于)<(小于)
>=(大于等于) <=(小于等于)
==(等于) !=(不等于)
2.关系运算的结果为boolean型
int a5=5,b5=10,c5=5;
boolean b6 = a5>b5;
System.out.println(a5+c5>10); //算数优先级高,所以先算后比较,输出结果为false
System.out.println(a5%2==0); //算数优先级高,所以先算后比较,输出结果为false
System.out.println(a5++>5); //此句中++是被使用,所以此处应该是5>5,所以输出结果为false-------此处同时a5自增1,变为6
System.out.println(a5++>5); //上一句中a5自增1变为6,所以此处应该是6>5,所以输出结果为true--------此处同时a5自增1,变为7
3.逻辑运算符
1.&&:逻辑与(并且),两边都为真才能为真,见false则false,又名为短路与
当第一个条件为false时,则发生短路(后边条件不执行),直接判定为false
||:逻辑或(或者),有一边是真则真,两边都是假才是假又名为短路或
当第一个结果为true时,则发生短路(后边条件不执行),直接判定为true,与的优先级高于或
!:逻辑非(取反),是真的时候为false,是false的时候输出true
2.逻辑运算是建立在关系运算的基础之上的
逻辑运算的结果也是Boolean型
想做某件事是由一个条件控制的使用关系运算符就够了;想干某件事是由多个条件控制的需要使用逻辑运算符。
& | 属于位运算符在目前与&& ||的区别为:&不短路与,|不短路或
//!,!的优先级最高
boolean e1 = !true;
boolean e2 = !false;
int e3=5,e4=10,e5=5;
//boolean d0=!e4<e5; //编译错误,因为!优先级高,且!不能非e4
4.赋值运算符
1.简单赋值运算符:=
2.扩展赋值运算符:+=、-=、*=、/=、%=
------扩展赋值运算符自带强转功能
short s = 5;
//s = s+5; //编译错误 ,运算时变量自动变为int,需要强转:s=(short)(s+5)
s += 5; //相当于s=(short)(s+5)
5.字符串连接符
char字符型,单引号中只能装一个,
String:字符串型,双引号中,0到多个。
1.+:
1.1.若两边为数字,则做加法运算
1.2.若两边出现了字符串,则做字符串连接
------任何类型的数据,只要和字符串连接,结果都会变为字符串类型,叫作同化作用
System.out.println(""+10+20+30); //输出结果为102030,任何类型的数据,只要和字符串连接,结果都会变为字符串类型,叫作同化作用
6.条件/三目运算符:
操作一个数的++、--叫做一目运算符,其他的都为二目
6.1.语法
boolean?数1:数2
6.2.执行过程:
整个条件运算是有值的,它的值要么是问号后的数1,要么是冒号后的数2
先判断Boolean的值:
若为true,则整个表达式的结果为?后的数1
若为false,则整个表达式的结果为:后的数2