为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的输出值不一样

我的输出最后会变成 第一个为40 第二个为30然后300.。。。。




正在回答

2 回答

{
   public static void main (String[]arge){
    int o = 10 ;
    int p = 20 ;
    int a = (o+p);                       //a=30
    int b = (a+=o);                    //a=40 b=40,此时a的值已改变
    int c = (b-=o);                     //b=30 c=30,此时b值已改变
    long d = (c*=o);                 //c=300 d=300,此时c值已改变

    long e = (d/=o);                 //d=30 e=30,此时d值已改变

    long f = (e%=o);//e=0 f=0
    System.out.println("three = one + two ==>"+a);          //输出值为改变后的值40
    System.out.println("three += one ==>"+b);
    System.out.println("three -= one ==>"+c);
    System.out.println("three *= one ==>"+d);
    System.out.println("three /= one ==>"+e);
    System.out.println("three %= one ==>"+f);
      

}
}

1 回复 有任何疑惑可以回复我~
#1

qq_喷泉_0

所以你的输出没错
2017-05-11 回复 有任何疑惑可以回复我~
#2

java萌新 提问者 回复 qq_喷泉_0

我是觉得我的a应该是30,毕竟我a的公式是 o+p,为什么最后输出会变成40,这个让我很不理解呀
2017-05-11 回复 有任何疑惑可以回复我~
#3

java萌新 提问者 回复 qq_喷泉_0

为什么是输出值是改变后的40,而不是之前的30呢
2017-05-11 回复 有任何疑惑可以回复我~
#4

qq_喷泉_0 回复 java萌新 提问者

int a=(o+p);//此处已赋值a=30; int b=(a+=0);//这里可理解为int a=a+o,a=40,此时a的值已改变,不在是30,b=a,即b=40
2017-05-11 回复 有任何疑惑可以回复我~
#5

qq_喷泉_0 回复 java萌新 提问者

int a = (o+p); //a=30 int b = (a+=o); //可理解为先进行a=a+o,a=40,此时a值改变,覆盖掉前面的30,b=a,即b=40
2017-05-11 回复 有任何疑惑可以回复我~
#6

谜之米 回复 java萌新 提问者

int b = (a+=o); 这一步 a自加o 之前a为30,这一步自加之后为40;
2017-05-11 回复 有任何疑惑可以回复我~
#7

java萌新 提问者

非常感谢!
2017-05-12 回复 有任何疑惑可以回复我~
#8

java萌新 提问者 回复 谜之米

多谢了,知道问题了
2017-05-12 回复 有任何疑惑可以回复我~
#9

java萌新 提问者 回复 qq_喷泉_0

多谢了,问题是知道了,只是不太懂后面你说的int b = (a+=o),a=40的理论,毕竟是萌新哈哈哈哈
2017-05-12 回复 有任何疑惑可以回复我~
#10

java萌新 提问者 回复 qq_喷泉_0

我自己又看了看,现在知道了,谢谢
2017-05-12 回复 有任何疑惑可以回复我~
#11

慕侠1827530 回复 java萌新 提问者

int b = (a+=o); 在你这行的代码中,你的a已经等于a+0了,也就是说你的a经过运算已经等于40了。java是逐行运算下来的,你的显示代码是放在最后所以显示的是最后赋值的结果也就是40而不是第一次运算的30.
2017-06-07 回复 有任何疑惑可以回复我~
查看8条回复

最后两个}}请无视,大家试试这段代码输出有什么问题

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么我的输出值不一样

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信