正确,模糊,因为该主题可能已经让我首先承认这是一个家庭作业相关的问题。所以,如果你对这些问题有一些乐趣仇恨,应该警告。让对象记住同类型的下一个对象
虽然我一直坐在那里好几个小时,但我已经很尴尬地不知道“还没有得到它”。
所以我希望你们中的一些人能告诉我我失踪的事情。
我想创建一个类,它存储一个变量,并记住该类的下一个对象。
以下是我的主类:
public class SticksAndStones {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String response = "n";
Stick currentStick = null;
int numberOfSticks = 0;
while (response.equals("n")) {
System.out.println("What diameter should the stick have?");
response = Integer.toString(scan.nextInt());
currentStick = new Stick(Integer.parseInt(response), currentStick);
numberOfSticks++;
System.out.println("Are you done adding sticks? ('n' or 'y')");
response = scan.next();
while (!response.equals("y") && !response.equals("n")) {
System.out.println("Please type 'y' for yes, or 'n' for no.");
response = scan.next();
}
}
for (int i = 0; i < numberOfSticks; i++) {
System.out.println(currentStick.getDiameter());
currentStick = currentStick.getNext();
}
}
}
我的棒类的样子:
public class Stick {
int diameter;
Stick stick;
public Stick(int diameter, Stick stick) {
this.diameter = diameter;
this.stick = stick;
}
public int getDiameter() {
return diameter;
}
public Stick getNextStick() {
return stick;
}
现在你可以看到,我的课似乎能记住以前的棒,但不下一个以任何方式。
这是一个问题的原因,是因为在我的SticksAndStones类的底部,我尝试打印出每个伸出部分的直径,但它们没有以正确的顺序出来。换句话说,第一根棍子最后出来,最后一根棍子先出来。
我不需要。我需要他们以相反的方式出来。首先坚持下去,如同第一次坚持。
我们在这个任务中唯一的限制就是我们不能使用任何形式的数组,列表,表格或数据库。
我错过了一些令人难以置信的简单的东西吗?
PS:会使用“家庭作业”标签,但它不允许。
UPDATE
新SticksAndStones类:
import java.util.Scanner;
public class SticksAndStones {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String response = "n";
int numberOfSticks = 0;
Stick firstStick = null;
Stick currentStick = null;
;
Stick prevStick = null;
while (response.equals("n")) {
System.out.println("What diameter should the stick have?");
response = Integer.toString(scan.nextInt());
if (firstStick == null) {
firstStick = new Stick(Integer.parseInt(response));
prevStick = firstStick;
} else {
currentStick = new Stick(Integer.parseInt(response));
prevStick.setNextStick(currentStick);
prevStick = currentStick;
}
numberOfSticks++;
System.out.println("Are you done adding sticks? ('n' or 'y')");
response = scan.next();
while (!response.equals("y") && !response.equals("n")) {
System.out.println("Please type 'y' for yes, or 'n' for no.");
response = scan.next();
}
}
currentStick = firstStick;
for (int i = 0; i < numberOfSticks; i++) {
System.out.println(currentStick.getDiameter());
currentStick = currentStick.getNextStick();
}
}
}
我的棒类:
public class Stick {
int diameter;
Stick stick;
Stick nextStick;
public Stick(int diameter, Stick stick) {
this.diameter = diameter;
this.stick = stick;
}
public Stick(int diameter) {
this.diameter = diameter;
}
public int getDiameter() {
return diameter;
}
public Stick getNextStick() {
return stick;
}
public void setNextStick(Stick nextStick) {
this.nextStick = nextStick;
}
}
一个微笑,一个拥抱谁可以告诉我为什么我打一个空指针异常。
也许添加两个引用? '坚持prevStick'和'坚持nextStick' – gtgaxiola 2014-10-01 17:10:31
@gtgaxiola这将如何帮助?我在这些事情上有点慢,所以你可能会展示我如何使用它来使它工作? – ViRALiC 2014-10-01 17:11:27
@ViRALiC lol“家庭作业”标签实际上是一个很好的建议... – Alboz 2014-10-01 17:11:37