回 帖 发 新 帖 刷新版面

主题:看似简单的java面试题

public class Zijia{
   public static void main(String[] args){
    int a = 1,b = 0;
    a=a++; System.out.println(a);
    a=++a; System.out.println(a); 
    b=a++; System.out.println(a);
   }
}

居然挂在这题上,输出结果为

1

2

3

为什么第一次输出的a的值不是2?
为什么第三次输出的a的值就可以是3了?

回复列表 (共3个回复)

沙发

很简单的道理
第一次a=a++此时只能看做是a=(a++),此时的a++的值为1,a=2,但是又得重新给a赋值,所以这条语句执行后a还是1。
第二次++a的值为2,所以重新赋值还是2.
第三次b的值为2(a++为2,操作之后a=3),但是a的值却是3了。与第一次分析相同。

板凳



后置的自增运算,要到 ; 号结束后才会运算。

前置的自增运算 优先级 很高, 会先运算

3 楼

深圳市华信群英科技有限公司与知名通信软件公司正式签订定向输送人才的合作协议
针对想进入IT软件行业的有志人士提供专业的企业内训
实训课程采用“2+3”分段教学模式,分为2个月理论强化和3个月项目实训两个阶段
实训前就签订就业安置协议,岗前实训后入职
不仅学费优惠而且是企业定向培训定向招聘,百分百保证就业
有意向请登录www.szctt.com,或加QQ:1179397962做详细咨询

我来回复

您尚未登录,请登录后再回复。点此登录或注册