gpt4 book ai didi

java - 有人能告诉我这段代码的逻辑错误是什么吗?

转载 作者:行者123 更新时间:2023-12-01 09:27:53 25 4
gpt4 key购买 nike

逻辑错误:输出工作正常并产生第一个输出,当检查第二个输出时,它产生第一个语句 Kids: 6,但第二个语句语句 New Baby, kids now: 7 从未生成,而是生成 New Baby, kids now: 4

提示:给我的提示是必须仅在代码的特定行中进行更改。您可以看到代码,其中提到必须仅在 callPersonInfo.java 中进行更改,并且在这些行之间 //必须在该行之后进行更改。因此,此行上方不能进行任何更改。//必须在此行上方进行更改。因此,此行以下没有任何更改。 其余代码都很好。

预期第一个输出:

Kids: 3  
New baby, kids now: 4

预期的第二个输出:(不是第一个输出的一部分,但它也应该与此一起使用,只是为了检查代码的可靠性)

Kids: 6
New baby, kids now: 7

代码:(运行正常,但逻辑错误)

// ===== Code from file PersonInfo.java =====
public class PersonInfo {
private int numKids;

public void setNumKids(int personsKids) {
numKids = personsKids;
return;
}

public void incNumKids() {
numKids = numKids + 1;
return;
}

public int getNumKids() {
return numKids;
}
}
// ===== end =====

// ===== Code from file CallPersonInfo.java =====
public class CallPersonInfo {
public static void main (String [] args) {
PersonInfo person1 = new PersonInfo();

person1.setNumKids(3);


//changes must be made after this line. So NO changes above this line.

System.out.println("Kids: " + person1.getNumKids());

person1.setNumKids(4);
System.out.println("New baby, kids now: " + person1.getNumKids());

//changes must be made above this line. So NO changes below this line.

return;
}
}
// ===== end =====

最佳答案

您每次都设置 numKids 的值,而不是按照您想要的方式递增(添加)它。

调用 incNumKids() 而不是 setNumKids(4),您将在第一次调用 setNumKids()< 时传入的数字加 1.

注意:问题中没有明确的是 person1.setNumKids(3) 实际上并不是一段静态代码,并且您显然也在编辑此代码以获得初始值“ child :X”输出。

关于java - 有人能告诉我这段代码的逻辑错误是什么吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39692896/

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