2016-09-25 69 views
0

邏輯錯誤:輸出工作正常,併產生第一輸出,而當第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 ===== 
+1

這是一個非常基本的問題。你能告訴我們你解決問題的方法嗎?你對理解這個問題有困難嗎?在一般水平上,代碼應該做什麼? – dwjohnston

+0

預期的輸出2不會生成,但生成1並且沒有問題。 – Anonymous

+0

您是否將'person1.setNumKids(3)'更改爲'person1.setNumKids(6)'?因爲我看不出你是如何獲得「Kids:6」作爲輸出的。 – splrs

回答

1

您每次設置的值爲numKids,而不是按照您的意願遞增(添加)。

致電incNumKids()而不是setNumKids(4),您將在第一次致電setNumKids()時將號碼加1。

注意:有什麼不明確的問題是,person1.setNumKids(3)實際上並不是一個靜態的代碼段,而且您顯然也在編輯這個代碼來獲得最初的「Kids:X」輸出。

+0

謝謝你的回答,但我只能在代碼的特定區域進行更改。該區域在'CallPersonInfo中指定。必須在這一行後面修改java //。所以沒有改變這條線以上.'和這條線'/ /改變必須在這條線以上。因此,在這條線以下沒有變化。**簡而言之,在這個區域以外的任何變化都不得不作出**。這是我收到的問題和代碼。所以,只需要在這方面做出改變就可以解決問題。你能幫我嗎?非常感激! – Anonymous

相關問題