黑马程序员技术交流社区

标题: 同一个数为什么打印出的结果不一样的 [打印本页]

作者: 戴进飘    时间: 2012-4-26 20:17
标题: 同一个数为什么打印出的结果不一样的
本帖最后由 daizhenpiao 于 2012-4-26 20:36 编辑

/*
有一个小问题:
System.out.println(n.getZong());//打印为512
System.out.println(zong);//打印为262144

int zong = n.getZong();
这句语句做了什么?为什么打印的数值不同的。
*/

class Non
{
        private int zong = 1;
        int getZong()
        {
                for (int tian=1; tian<=10; tian  )
                {
                        if (tian == 1)
                        {
                                zong = zong;
                        }
                        else
zong = zong;                        }                        else                                zong = zong * 2;                }                return zong;        }}class Noname2{        public static void main(String[] args)         {                Non n = new Non();                System.out.println(n.getZong());//输出为512                int zong = n.getZong();                System.out.println(zong);//输出为262144        }}
作者: 光sail    时间: 2012-4-26 20:19
把完整的代码拿出来看看
作者: 蒋亮    时间: 2012-4-26 20:37
兄弟,你等于调用了两次n.getZong()方法,知道吗?第一次,int zong=n.getZong(),这个时候,对象n的zong变量值就已经是512了,然后你System.out.println(n.getZong())的时候是等于zong变量的值从512开始的,而不是从1开始的,那不就变成了262144了
作者: 戴进飘    时间: 2012-4-26 20:49
蒋亮 发表于 2012-4-26 20:37
兄弟,你等于调用了两次n.getZong()方法,知道吗?第一次,int zong=n.getZong(),这个时候,对象n的zong变 ...

代码有几个地方错误的,你都看懂了,还不错哦。看了你的回答,我明白了。谢谢,大哥。
作者: 蒋亮    时间: 2012-4-26 20:50
daizhenpiao 发表于 2012-4-26 20:49
代码有几个地方错误的,你都看懂了,还不错哦。看了你的回答,我明白了。谢谢,大哥。 ...

我去,哥们,别客气啊,别大哥啊,兄弟才22呢,大家相互学习嘛!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2