0

这是教科书上的一个练习程序。我需要弄清楚这个程序的输出。这是程序:

public class EchoTestDrive {
    public static void main(String[] args) {
        Echo e1 = new Echo();
        Echo e2 = new Echo();

        int x = 0;
        while (x < 4) {
            e1.hello();
            e1.count = e1.count + 1;
            if (x == 3) {
                e2.count = e2.count + 1;
            }
            if (x > 0) {
                e2.count = e2.count + e1.count;
            }
            x = x + 1;
        }
        System.out.println(e2.count);
    }
}

class Echo {
    int count = 0;

    void hello() {
        System.out.println("helloooo... ");
    }
}

该程序的输出答案是:

helloooo...
helloooo...
helloooo...
helloooo...
10

我不太明白这主要是如何计算的。似乎 x 循环了 4 次。x=0;x=1;x=2;x=3。e1 的值应该是 1,2,3,4,因为 e1.count=e1.count+1。然后我很困惑,在这种情况下如何计算e2?

4

2 回答 2

1

观察到的变量输出

public class EchoTestDrive {
    public static void main(String[] args) {
        Echo e1 = new Echo();
        Echo e2 = new Echo();

        int x = 0;
        while (x < 4) {
            e1.hello();
            e1.count = e1.count + 1;
            System.out.println("e1.count = " + e1.count);
            if (x == 3) {
                e2.count = e2.count + 1;
                System.out.println("x == 3 e2.count = " + e2.count);
            }
            if (x > 0) {
                e2.count = e2.count + e1.count;
                System.out.println("x > 0 e2.count = " + e2.count);
            }

            x = x + 1;
        }
        System.out.println(e2.count);
    }
}
于 2013-10-05T03:20:51.230 回答
0

组成 x、e1.count 和 e2.count 的表。然后跟随程序并逐行更新值。e2.count 的最终值得到 10。对于 x=0,e2.count 保持为 0。但它在 x=3 处获得了额外的增量。

于 2013-10-05T03:40:31.020 回答