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

运算符

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)关于逻辑运算符的短路特性:

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

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

         System.out.println(b);

         System.out.println(a);

       结果:true

             1

      2int 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

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值