标题:很基础的题,但我想不通
只看楼主
不落夕阳
Rank: 2
等 级:论坛游民
帖 子:64
专家分:30
注 册:2016-10-13
结帖率:69.57%
已结贴  问题点数:5 回复次数:7 
很基础的题,但我想不通

public class Test {
    public static void main(String args[]){
        int x=2,t=0;
        t=(x++)/3;
        System.out.println(t);
    }
}
为什么执行结果为0,我一直认为等于1,想不通啊!
搜索更多相关主题的帖子: public 
2016-12-02 10:11
kk_11
Rank: 1
等 级:新手上路
帖 子:2
专家分:2
注 册:2016-12-2
得分:2 
运算后一个浮点型,一个整型,不匹配啊,所以还是原来的初始化值啊 ,空间存储的值传递啊!
2016-12-02 17:23
kaosaier
Rank: 5Rank: 5
等 级:职业侠客
威 望:7
帖 子:124
专家分:303
注 册:2016-7-23
得分:0 
回复 2楼 kk_11
同意

minecraft,我的最爱!
2016-12-02 20:40
JavaJack
Rank: 2
来 自:YunNan
等 级:论坛游民
帖 子:24
专家分:26
注 册:2016-11-16
得分:3 
(x++)/3是先执行x/3的操作,就相当于先执行2/3,/操作取结果的整数部分,所以是0,这些操作完成之后才会将+1的值赋值给x
你如果将x++换成++x,就是先将+1的值赋给x(此时x),再进行3/3操作,此时在运行,结果为1
2016-12-02 22:27
不落夕阳
Rank: 2
等 级:论坛游民
帖 子:64
专家分:30
注 册:2016-10-13
得分:0 
回复 4楼 JavaJack
哦,懂了
2016-12-02 23:28
纵横阳仔
Rank: 7Rank: 7Rank: 7
来 自:自学成才的火星人儿
等 级:贵宾
威 望:26
帖 子:147
专家分:698
注 册:2016-10-20
得分:0 
你可以将x++换成++x再试一试
2016-12-06 11:40
cuqa
Rank: 2
等 级:论坛游民
帖 子:21
专家分:26
注 册:2012-10-10
得分:0 
是0没错啊,x++,先把x的值带进表达式运行,运行结束后再对x自增。++x会先自增,再带进表达式
2016-12-07 22:10
袁东东
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-12-8
得分:0 
4楼正解,++X表示X先进行++运算,得到的结果再去除以3,X++表示先运算后进行++,就是先拿出来除以3最后再自增
2016-12-08 11:02



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-471890-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.256173 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved