2016-09-25 70 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

相关问题