邏輯錯誤:輸出工作正常,併產生第一輸出,而當第2個輸出檢查,它生產的第一條語句Kids: 6
,但第二條語句New baby, kids now: 7
是從來沒有生產,而是,產生New baby, kids now: 4
。有人能告訴我這段代碼中的邏輯錯誤是什麼?
建議:提示給我的提示是隻能在代碼的特定行中進行更改。你可以看到代碼,在那裏提到的改變只能在callPersonInfo.java
之間進行,而且在這些行之間的代碼也可以在//changes must be made after this line. So NO changes above this line.
和//changes must be made above this line. So NO changes below this line.
之間。代碼的其餘部分沒有問題。
預計1輸出:
Kids: 3
New baby, kids now: 4
預計第2個輸出:(不是第一次輸出的一部分,但它應該有這方面的工作也只是檢查代碼的可靠性)
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 =====
這是一個非常基本的問題。你能告訴我們你解決問題的方法嗎?你對理解這個問題有困難嗎?在一般水平上,代碼應該做什麼? – dwjohnston
預期的輸出2不會生成,但生成1並且沒有問題。 – Anonymous
您是否將'person1.setNumKids(3)'更改爲'person1.setNumKids(6)'?因爲我看不出你是如何獲得「Kids:6」作爲輸出的。 – splrs