Java编程那些事儿27—其它运算符

4.6 其它运算符
         对于无法归类,或者单独占一类的运算符,将在下面进行介绍。
l ++、--
这两个运算符是程序中的递增和递减运算符。其意义参照以下示例代码:
         int n = 0;
         n++; // n = n + 1
         System.out.println(n);
n++的意义就是对原来变量n的值加1以后再赋值给自身,因为原来变量n的值是0,加1以后则变成1。
同理,递减运算符的意义也是这样,示例代码:
         int m = 0;
         m--;
         System.out.println(m);
m—的意义就是对原来变量m的值减1以后再赋值给自身,则m的值变成-1。
需要注意的是++和—只能操作变量,而不能操作其他的内容,以下使用都是错误的:
         int a = 0;
         int b = 0;
         (a + b)++;   //错误
         final int M = 1;
         M++;      //错误
         5++;      //错误
在实际书写时,++和—既可以写在变量的前面,也可以写在变量的后面,例如:
         int k = 0;
         k++;
         ++k;
同理,--也可以这样,那么这些在实际使用中有什么区别呢?其实对于变量的值来说,没有区别,也就是++无论写后面还是写前面,变量的值肯定增加1,--无论写在后面还是前面,变量的值都减1。其最大的区别在于整个式子的值,如n++,规则如下:
         1)++或—写在变量前面,则该式子的值等于变量变化以后的值。
         2)++或—写在变量后面,则该式子的值等于变量变化以前的值。
示例代码如下:
         int n = 1;
         int m= 1;
         n++;    //n的值变为2
         ++m;   //m的值变为2
         int k = n++; //n的初始值是2,则n++的值是2,结果n的值为3,k的值为2
         int j = ++m; //m的初始值是2,则++m的值是3,结果m的值是3,j的值为3
同理,--也是这样。
下面是一个稍微综合点的示例:
         int a = 0;
         int b = 0;
         a = b++; //a为0,b为1
         a = ++b; //a为2,b为2
         b = a++; //a为3,b为2
         a = ++b; //a为3,b为3
说明:注释部分为对应行代码运行以后,a和b的值。
在程序开发中,可以使用该区别简化代码的书写,但是不推荐这样做,因为这样将增加阅读代码的难度。
l +、-
前面介绍过加减运算符,其实+、-还有另外一个意义,也就是代表正负,通常情况下正号可以省略,而负号可以和数值、变量以及运算式进行结合,示例代码如下:
         int a = 0;
         int b = 1;
         int c = -5;
         c = -a;
         c = -(a + b);
l ? :
这个运算符称为条件运算符,其作用是根据判断的结果获得对应的值,语法格式如下:
         条件式 ? 值1 : 值2
语法要求条件式部分必须是boolean类型,可以是boolean值,也可以是boolean变量,或者是关系运算符或逻辑运算符形成的式子,值1和值2必须能够转换成相同的类型。
功能说明:如果条件式的结果是true,则整个式子的值取值1的值,否则取值2的值。示例代码如下:
         int x = 10;
         int y = 20;
         int max = x > y ? x : y; //因为x大于y,则取变量x的值,然后赋值给max
         int a = -10;
         int abs = a > 0 ? a : -a; //实现求绝对值得功能
l ()
括号,也是运算符的一种,作用是可以让括号内部的计算首先进行,这个和数学上一致,只是程序代码中可以使用这个组合任意的合法运算式。示例代码为:
         int a = 1 + 2 * 3;
         int a = (1 + 2) * 3; //和以上代码的运行结果不一致
其实每个运算符都有自己的优先级,使用括号可以提升对应式子的优先级。关于运算符优先级的概念,后续将进行介绍。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值