您的位置:首页 > 编程语言 > Java开发

Java学习笔记4 java中的运算符

2017-05-05 15:04 344 查看
运算符
A.算术运算符
加,减,乘和普通的数学运算方式相同
 除法需注意的几个问题
1.分析:int a = 1; int b = 2; int c = a /
b;
System.out.println(c);结果:0

结论:a,b两个整型变量相除,结果不能整除时,小数点后位数舍去,而不是四舍五入
2.分析:double a = 1; int b = 2; double c
= a / b;
System.out.println(c);结果:0.5

结论:参与运算的变量中,有整型int,有double,有short,那么结果取决于变量中表示范围最大的那个变量类型,此例中为double型
3.分析:int  a = 1; int b
= 2; double c = a / b;
System.out.println(c);结果:0.0
结论:按照优先级,先算=右边的,即先计算a /
b,结果为0,算完将结果再变换为double型。可知:数学运算时,是一步步地变换类型,而不是首先变换为运算范围最大的,再计算。
4.分析:int  a = 1; int b
= 2; double c =(double)a / b;
System.out.println(c);结果:0.5

结论:a,b虽为整型,但在运算前,就通过(double)强制转换a的值为一个匿名的double型变量值
 
取模(余)运算符,使用%表示
1.分析:int  a = 5; int b
=3; int c = a % b;
System.out.println(c);结果:2
结论:与普通除法取余相同,5 / 3的余数就是2
2.分析:int  a =- 5; int
b =3; int c = a % b;
System.out.println(c);结果:-2
结论:与普通除法取余相同,-5 / 3商-1,余数是-2
3.分析:int  a
 =  -5; int b  =
 -3; int c = a % b;
System.out.println(c);结果:-2
结论:与普通除法取余相同,-5 / -3商1,余数是-2
4.分析:int  a =
 5; int b = -3; int c = a % b;
System.out.println(c);结果:2
结论:与普通除法取余相同,5 / -3商-1,余数是2
总之:取模结果的符号与被除数相同。
 
5.分析:int  a =
 5; int b = -3; int c = a % b;
System.out.println(c);结果:2
 
B.关系运算符:

大于(>),小于(<),等于(==),不等于(!=),大于等于(>=),小于等于(<=)
1)分析:int a = 3;int b =
2;boolean c = (a>b);

System.out.println(c);结果:true
2)分析:int a = 3;int b =
2;boolean c = (a<b);

System.out.println(c);结果:false
C.逻辑运算符:(也为布尔型)(执行顺序,左到右)

 1)逻辑与(表示并且):使用&&表示,是双目运算符(即有两个操作数的运算符),只有当两个操作数都为真,结果才为真,其他均为假

 
分析:int a = 1; int b = 2; int c = 3; int d = 4;

             
boolean e = (a<b) &&
(c<d); System.out.println(e);

    

结果:true

 2)逻辑或(表示或者):使用||表示,也是双目运算符,只有当两个操作数均为假时才为假,其他均为真。

 
分析:int a = 1; int b = 2; int c = 3; int d = 4;

             
boolean e = (a<b) || (c>d);
System.out.println(e);

  

结果:true

3)关于逻辑运算符的短路特性:

  

理解:逻辑运算符按从左到右的执行顺序,当遇到可判定出结果的步骤时,直接输入结果,不再继续执行下去。

分析:(1)int a = 3;Boolean b =
(1<2) &&
((a=1)<4);

        
System.out.println(b);

        
System.out.println(a);

      

结果:true

            
1

     

(2)int a = 3;Boolean b =
(1>2) &&
((a=1)<4);

        
System.out.println(b);

        
System.out.println(a);

      

结果:false

             
3

结论:由于1>2为假,因此可判定结果为假,后面的无需再执行,所以a=1没有执行,a任然是3.

引申:在逻辑或运算符中,||前为真,则||后不再执行
 
总之,逻辑与:如果第一个操作数为false,结果就是false,在这种情况下,逻辑与后面的运算不会被执行,则发生了短路

       

逻辑或:如果第一个操作数为true,结果就是true,在这种情况下,逻辑或后面的运算不会被执行,则发生了短路

 4)关于变量的自增与自减:

 
实现a自加1的几种形式:int a = 2; a +=
1; 
//等价于a = a+1;
//等价于a++;//等价于++a;

  
a++与++a的区别:

分析:int a = 1; int b = a++;结果:a==2,b==1;
     
Int a = 1; int b = ++a;结果:a==2,b==2;

结论:关于int b = a++;先将a的值赋给b,后a自加;关于int b =
++a先将a自加,后将自加后a的值赋给b。
  

实现减法自减与加法自减相同,只是做的减发运算。

 a =
a + 2等价于a  += 2;

a = a -
2等价于a  -= 2;
a =a *
2等价于a  *= 2;
a = a /
2等价于a  /= 2;

 

D.条件运算符(三元表达式)

其形式为type d = a ? b : c;

分析:如果a为真,则返回b,如果a为假,则返回c

 

 

 

 
 
 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: