关于左图的++a和a++的问题。

来源:3-2 Java中的算术运算符

慕雪1790920

2016-10-01 20:50

++++a和a++++是不对的,并不能让a多次+1再赋予给b吗?只能执行a++或者++a这种的运算吗?

写回答 关注

5回答

  • 天地过往而不拘
    2016-10-01 21:09:34
    已采纳

    这其实是编译原理的知识,我们写的code是由编译器或解释器进行语义分析的。

    如果是一条语句的开始出现一个+a;显然它无法解释成任何语句,

    ++a;可以解释为自加1

    +++a;无法解释成任何语句

    ++++a;更加无法解释成正确语句。

    但是一种情况下,比如c=a+++b;可以被解释为c=a+(++b);

    也就是实际代码在编译器编译的时候是根据一定的编译规则去解释的,不符合规则的写法,自然报错。

    慕雪1790...

    这等于就像是++a等于是说我,这是编译器可以解释的语句。但是+++++a虽然想说成更多个我即是我们,但是编译器没有这个语句的分析,所以就是错误的写法。好像懂了,这就像已知的公式一样,并不是增加更多符号就能多运算一样,必须一步一步的采用这个公式写出多个语句才能算出来。

    2016-10-01 21:27:44

    共 1 条回复 >

  • Fukaikiso
    2016-10-01 23:39:28

    ++是自加运算符

  • 风中打伞的小孩
    2016-10-01 23:13:33

    a+++,目前我所知的编译器没有这个功能,也就是不可以,其实也不需要,如果想让a自加许多次的话,再往后学一点,循环那里可以用更简单,明了的方式实现

    慕雪1790...

    好的!知道了,我就是想问如何让a多次自增,既然后面有循环而且简单那就好了。多谢!

    2016-10-02 09:34:12

    共 1 条回复 >

  • 幕粉一枚
    2016-10-01 21:12:47

    ++a是a先自加一,然后在运行a;而a++是执行完a再给a加一

  • 慕粉3789681
    2016-10-01 20:58:02

    当然不行,会报错的,有什么想法可以先在自己电脑上面敲一遍,比直接问别人强得多,我也是刚学,老是有各种奇奇怪怪的想法,每次都顺着自己的意思去敲一遍,然后搞明白之后,再去想其他方法实现自己的脑洞,感觉很爽!

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165172 学习 · 17581 问题

查看课程

相似问题