黑马程序员技术交流社区

标题: 关于自增和自减 [打印本页]

作者: 白白胖胖    时间: 2014-4-5 12:25
标题: 关于自增和自减
看视频,自增和自减,要是简单运算还能明白。
但是还是对优先级有点迷糊,就是自增自减和加减乘除这些相比,优先级是怎样的
作者: Darkhorse′Xa    时间: 2014-4-5 17:09
本帖最后由 Darkhorse′Xa 于 2014-4-5 18:26 编辑


网上的运算符优先级的表也很多,可以去查一下资料,
自增自减有前缀和后缀,优先级是不一样的,自增自减前缀优先级是大于+-*/优先级的,后缀自增自减小于+-*/优先级
  1. <p>
  2.             int number = 20;
  3.             int i = 5 * ++number;/*首先这边有三个运算符,前缀自增,*,=,优先级是先进行自增那么number的值就为21,
  4.                                                   在进行*运算符的计算,最后在赋值给i */
  5.             Console.WriteLine(i);//输出就为105
  6.             int number = 20;</p><p> </p><p> </p><p> </p><p>
  7.             int i = 5 * number++;/*首先这边有三个运算符,前缀自增,*,=,优先级是先进行*运算,那么计算完为100
  8. 再进行赋值运算将100赋值给i,最后在进行自增运算(后缀)*/
  9.             Console.WriteLine(i);//输出就为100
  10.             Console.WriteLine(number);//number自增后为21</p>
复制代码


作者: 李云锋    时间: 2014-4-5 18:10
本帖最后由 李云锋 于 2014-4-5 18:12 编辑

不难吧,很久没特意弄这些了,也不知道有没有记错
加入a=1 b=2
a++ 无论加减乘除,都是先加后运算 比如 b+a++ 然后输出运算结果和a,这个时候a++先变成2,然后和是2+2=4
++a的话,是先运算后加,同上b+++a,然后同输出运算结果和a的值,这个时候运算之前++a代表的还是1,运算完后才是2,所以结果是1+2=3,而输出的a的值是2加减乘除都一样,还有新手的话不比纠结于其他运算的优先级,能把常用的了解就行了

作者: @雪飞鸿    时间: 2014-4-6 18:24
自增和自减单独使用时没有区别;
在参与运算时,a++ a使用递增之前的值进行运算,运算结束后a的值增加1;
++a a的值先递增1然后使用递增之后的值参与运算;





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2