li

XXXXX

 

java--运算符和表达式

运算符:就是对常量或者遍历进行操作的符号;

表达式:用运算符把常量或者变量连接起来符合java语法的式子称为表达式,不同运算符连接的表达式体现的是不同类型的表达式。

一、算术运算符

1、使用%运算符:

  • java中运算符除了加减乘除之外,还有取余(%)运算以及自增(++)自减(--)
  • 取余(取模),意为取余数,可以用于整数、char和浮点数。
 1 //1、取余
 2 int n=255;
 3 char n2='A';
 4 double n3=16.8;
 5 System.out.println(n3&8);//0.800000000000007
 6         int a=6;
 7         int b=4;
 8         System.out.println(a+b);//10
 9         System.out.println(a-b);//2
10         System.out.println(a*b);//24
11         System.out.println(a/b);//1
12         System.out.println(a%b);//2
13         //除法得到的是商,取余得到的是余数
14 //整数相除只能得到整数,要想得到小数,必须有浮点数的参与
15         System.out.println(6.0/4);//1.5

注意事项:

  • /和%的区别:两个数据做除法,/取结果的商,%取结果的余数;
  • 整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。

2、字符“+”操作:

拿字符在计算机底层对应的数值来进行计算的

‘A’----65;A-Z是连续的

'a'----97;a-z是连续的

‘0’----48;0-9是连续的

 1         int i=10;
 2         //char c='A';//75,"A"的值为65
 3         //char c='a';//107 “a”的值为97
 4         char c='0';//58   “0”的值为48
 5         System.out.println(i + c);//58
 6 
 7 
 8         //char ch=i+c;//类型错误,char类型会被自动提升为int类型
 9         int j=i+c;
10         System.out.println(j);//58
11 
12         double k=10+13.14;
13         System.out.println(k);

注意:算术表达式中包含多个基本数据类型的值的时候,整个算术表达式的类型会自动进行提升

提升规则:

  • byte类型,short类型和char类型将被提升到int类型;

  • 整个表达式的类型自动提升到表达式中最高等级操作同样的类型

  • 等级顺序:byte,short,char--->int----->long---->flooat---->double

3、字符串“+”操作:

  • 当“+”操作中出现字符串时,这个“+”时字符串连接符,而不是算数运算;

  • 在“+”操作中,如果出现了字符串,就是连接运算符,否则就是算数运算,当连续进行“+”操作时,从左到右逐个执行

  • 例如:1+99+“年级”=====100年级

二、自增自减运算

  • 前置自增自减:先自增自减后运算
  • 后置自增自减:先运算后自增自减(后边的居多)
1 int a=10,b=20; 
2 int c1=a++;
3 int c2=++b;
4 System.out.println("a="+a+",b="+b+"c1="+c1+",c2"+c2);//11 21 10 21

结论:

  1. 单独使用的时候,变量无论是前置还是后置运算,其结果一定为+1;
  2. 只在使用它的时候考虑前置和后置规则;
  3. 参与操作的时候,如果放在变量的后边,先拿变量参与操作,后拿变量做++或--;
  4. 参与操作的时候,如果放在变量的前边,先拿变量做++或者--,后拿变量参与运算。

三、关系运算符:

1 //不管成立不成立,结果为布尔值,true or false
2 
3 int max=10;
4 int num=9;
5 boolean b1=max>15;//false
6 boolean b2=num%2==1;//true
7 System.out.println(num=max);//把max的值赋值给num

 

四、逻辑运算符:

1、逻辑运算&&逻辑与||逻辑或!逻辑非

 

 结论:与运算:一假必假

或运算:一真必真

2、使用逻辑运算符

 1 //4、逻辑运算符
 2 //
 3 int score=80;
 4 boolean res13=score>=60&&score<=90;//true
 5 //
 6 boolean flag=true;
 7 int i=200;
 8 boolean res2=flag||(i>=0&&i<10);//true
 9 //
10 res2=!flag||(i>=0&&i<10);//flase

3、“短路逻辑”运算符

  • (&&)短路与运算:一假必假 指:当一个表达式为假时后面的表达式就不会再取运算了

  • (||)短路或运算:一真必真 指:当第一个表达式为真时后面的表达式不参与运算

1 int i=100,j=200;
2 boolean b1=(i>j)&&(i++>100);
3 System.out.println(b1);
4 System.out.println(i);
5 boolean b2=i>0||j++>200;
6 System.out.println(b2);
7 System.out.println(j);

 

五、赋值运算

1、使用“=”进行赋值运算

  • 赋值运算符一定是从右边表达式看向左边

i=1;表达式将1赋值给i;

1 //赋值运算符
2 int x,y,c;
3 x=y=c=100;
4 //将100赋值给c----》b=(c=100)

2、使用扩展赋值表达式

 

 

1 i=10;
2 i += 20;//把左边和右边的数据做加法操作,结果赋值给左边,相当于 i=i+20;
3 //注意:扩展的赋值运算符底层隐含了强制类型转化;
4 short s=10;
5 s=(short)(s+20);
6 System.out.println(s);

六、三目运算符

1、使用三目运算符

  • 三目运算符(条件运算符):

    boolean表达式?表达式1:表达式2;

  • boolean表达式为true,则运算表达式1,否则运行表达式2.

  • 自右向左结合 1 String s=65>60?"及格":"不及格";//不及格 

2、三目的嵌套:

  • 三目运算符可以嵌套使用,表达式1和表达式2的结果可以为嵌套三目的boolean表达式

 1 int a=-1; 2 String r=a>0?"正数":(a==0?"0":"负数"); 

七、位运算符:

按照二进制数进行操作;

操作数:整型

& | ^:boolen

& | ^ ~ << >> >>>

&:(与运算:两个同时为1,结果为1,否则为0)

0&0 1&0 0&1 1&1

|:(或:参加运算的两个对象,一个为1,其值为1)

0|0 1|0 0|1 1|1

^:(异或:相同为0,不同为1,将某些位置取反)

0^0 1^0 0^1 1^1

 

posted on 2022-03-11 12:10  LXXXXxZz  阅读(224)  评论(0编辑  收藏  举报

导航