gpt4 book ai didi

java - Head First Java 第 2 版 - 第 118 页,第 5 章

转载 作者:行者123 更新时间:2023-12-02 06:43:25 24 4
gpt4 key购买 nike

我正在进行一项名为“成为 jvm”的练习。

但是,我应该得到的输出与我的计算方式完全不同。

我的 y 为 15,我的 x 为 7。

但是输出应该显示 13 15 x = 6;

代码如下:

 class Output {  

public static void main (String [] args ) {
Output o = new Output();
o.go();
}

void go() {
int y = 7;
for (int x = 1; x < 8; x++) {
y++;

if ( x > 4 ) {
System.out.print(++y + " " );
}

if ( y > 14) {
System.out.println("x = " + x );
break;
} // close if
} // close for
} // close go
} // close class

有人可以和我一起浏览一下代码,并告诉我哪里出了问题吗?

感谢您的帮助!

最佳答案

好的,

您从一个新输出开始调用方法 go() .

当这个方法运行时,你有两个变量,y=7x=1 (xfor 循环中定义)。

注意for的格式循环,它指出 x初始化为 1 并且只持续到 x < 8这意味着当 x==7 , 停止。如果 x 则不处理循环中的任何内容等于到 8。

每个循环递增xx++ 定义的 1

因此,从头开始逐步执​​行循环,其中 x== 1y==7增量y减一 ( y++ )。

现在我们有x==1y==8

我们可以忽略接下来的两个 if语句为x小于 4 且 y小于 14,所以回到 for 循环的开始,不要忘记递增 x减一。

因此,对于第二个循环,我们有: x==2 y==9 .

第三个循环: x==3 y==10

第四个循环: x==4 y==11 <- x现在是 4,但不大于 4。因此,在下一个循环中,我们需要输入 if(x>4)循环。

第五个循环: x==5 y==12 (如 y++ 立即),但随后我们进入当 x>4 的循环现在,因此我们++y这可能是你犯错误的地方

++y类似于 y++但先递增值,然后计算并存储它,而不是先计算值,然后递增并存储它。

现在输出 13 y==13 .

第六循环:与第五个循环相同(逻辑上,输入第一个if语句!) x==6 y==13

输出 15 和现在 y==15 ,这样我们就可以进入最后的循环了,所以我们输出x的值对于这个循环,

是 6。

然后我们就爆发了,就这样结束了。

所以输出应该是13 15 x=6 。我希望这会有所帮助,只需注意 ++y 之间的区别即可和y++ .

关于java - Head First Java 第 2 版 - 第 118 页,第 5 章,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18893165/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com