LOGICAL ERROR:出力は正常に動作し、第一出力を生成し、第二の出力をチェックすると、それは最初の文Kids: 6
を生成しますが、2番目の文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.
残りのコードは問題ありません。(第一出力の一部ではないが、それは、コードの信頼性をチェックするだけでも、こので動作するはずです)
Kids: 6
New baby, kids now: 7
:第2出力期待
Kids: 3
New baby, kids now: 4
:第一出力期待
コード:(正常に実行されますが、論理エラー)
// ===== 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)'に変更していますか?あなたが「キッズ:6」をどのように出力しているかを私は見ることができないからです。 – splrs