A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 文涛 中级黑马   /  2013-11-8 16:39  /  1195 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我在程序中使用a++=1;就可以为什么使用++a=1;就回报错呢?

评分

参与人数 1黑马币 +1 收起 理由
乔兵 + 1

查看全部评分

3 个回复

倒序浏览
a++是先去a的值,过后再加1,++a是先加1在返回a的值。
回复 使用道具 举报
  1. class Demo
  2. {
  3.      public static void main(String[] args)

  4.                 {
  5.                         int a = 3;
  6.                         //a++ = 5;//格式书写错误
  7.                         //a = 5+a++;//格式书写正确
  8.                         //a = 5+++a;//格式书写错误
  9.                         a = 5+(++a);
  10.                         //++a = 1;//格式书写错误
  11.                         System.out.println(a);
  12.                        
  13.                 }
  14. }
复制代码
针对楼主问题,我认为程序中使用a++=1,也是不可以编译成功的,我是这样想的,a是一个变动的变量,是无法给你一个变动的变量附值的。如果可以赋值,那应该做一些特殊的处理或者限定什么的。具体内部原因,不晓得,等待楼下大神详解。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
The left-hand side of an assignment must be a variable
使用“+="赋值,左边必须是变量,a++=1也会编译失败
++a=1,不能给一个运算结果赋值吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马