2021-07-16
运算符和表达式
一、算术运算符和算术表达式
1、单目算术运算符
%---取余 ++---自加 -- ---自减 - ---取反
public class zijia { public static void main(String[] args) { int i =4,j; j=(i++)+(i++); System.out.println("j="+j+"i="+i); i=3; j=(++i)+(++i); System.out.println("j="+j+"i="+i); } }
需要注意的是:自加和自减运算只应用于变量,且位于变量不同侧有不同的效果
int a1=2,a2=2; int b=(++a1)*2; int c=(a2++)*2;
执行后b的值为6,c的值为4,当++在变量前面时,先对变量进行+1,然后代入整个运算,当++在变量后面时,先进行运算,再对变量进行+1
2、双目算术运算符
需要两个操作数,写在运算符的左右两边
比如 5/2=2
注意:两个整数类型的数据做除法时,结果只保留整数部分,如 2/3=0
取模运算符的两端的操作数不只可以用于整型数,也可以应用于浮点数。
3、算术运算符的优先级
放个图 ヾ(๑╹◡╹)ノ"
4、算术表达式
注意点: 可使用括号改变优先级的次序
过长的表达式可以分为几个表达式来写
一个表达式里面不要连续使用两个运算符,可以用括号或者空格进行分隔
1 public class suanshuyunsuanfu { 2 3 public static void main(String[] args) { 4 int x,y,z,a,b; 5 a=11; 6 b=3; 7 x=a%b; 8 y=3+ --a; 9 z=7+(++b); 10 System.out.print("\tx="+x); 11 System.out.print("\ty="+y); 12 System.out.println("z="+z); 13 } 14 15 }
二、赋值运算符和赋值表达式
eg: double s=6.5+45; //将表达式6.5+45 的值赋给变量s
再放个图٩(๑❛ᴗ❛๑)۶
1 public class fuzhiyunsuanfu { 2 3 public static void main(String[] args) { 4 int x,y,z; 5 x=1; 6 y=2; 7 z=3; 8 x-=y; 9 y/=x; 10 z%=x; 11 System.out.print("x="+x+"\ty="+y+"\tz="+z); 12 } 13 14 }
三、关系运算符和关系表达式
比较两个表达式大小关系的运算,结果为真true或者假false
再来一个图ヾ(✿゚▽゚)ノ
1 public class guanxiyunsuanfu { 2 3 public static void main(String[] args) { 4 int i=1000; 5 int j=100; 6 boolean k; 7 k= i<j; 8 System.out.print("i<j is "+k); 9 } 10 11 }
四、逻辑运算符和逻辑表达式
逻辑运算符用于对布尔型变量进行运算,结果也是布尔型。
还有一个图ヾ(◍°∇°◍)ノ゙
注意:从上图可以看出来&与&&,|与||的结果是一样的
所以我搜了一下&、|与&&和||的区别
&和|执行操作时,运算符左右两边的表达式首先被运算,然后对两边的结果进行与、或运算
&&与||执行操作时,从左到右,如果能从左边的表达式得到操作数并且能确定结果,则不再对右边的表达式进行运算。
分析比较而言,&&和||的运算速度更快。
1 public class luojiyunsuan { 2 3 public static void main(String[] args) { 4 int i=3,j=4; 5 boolean k1,k2; 6 k1=(i<j) && (++i<j); 7 k2=(i<j) || (i<j); 8 System.out.print("k1="+k1+"k2="+k2); 9 } 10 11 }
1 public class luojiyunsuan { 2 3 public static void main(String[] args) { 4 int i=3,j=4; 5 boolean k1,k2; 6 k1=(i<j) && (++i<j); 7 k2=(i<j) || (i<j); 8 System.out.print("k1="+k1+"k2="+k2); 9 } 10 11 }
public class luojiyunsuan { public static void main(String[] args) { int i=3,j=4; boolean k1,k2; k1=(i<j) && (++i<j); k2=(i<j) || (i<j); System.out.print("k1="+k1+"k2="+k2); } }