所以这是我的代码。
public static void play(Player player) {
Scanner localScanner = new Scanner(System.in);
while(localScanner.hasNextLine()){
String input = localScanner.nextLine();
if(input.equals("quit")) {
System.out.println("Game over, Good bye.");
return;
}
if(input.contains("north")){
buildWorld(player, player.moveTo().connectNorth());
} else if(input.contains("south")){
buildWorld(player, player.moveTo().connectSouth());
} else if(input.contains("east")){
buildWorld(player, player.moveTo().connectEast());
} else if(input.contains("west")){
buildWorld(player, player.moveTo().connectWest());
} else {
String contents;
if (!contents.equals(""))
System.out.println("There is:\n" + contents);
else{
System.out.println("This room is empty.");
} else if(input.startsWith("pickup")){ // <-- This is the 'orphan' else
contents = input.substring(8);
if(player.moveTo().moveTo(contents)){
Object localObject = player.connectWest(contents);
if(localObject !=null)
System.out.println("You have picked up " +localObject);
else
System.out.println("You have too much damage, Game over.");}
else {
System.out.println("There is no " +contents);
}} else if (input.startsWith("drop")){
contents=input.substring(6);
if(player.moveTo(contents))
System.out.println("you dropped " +contents);
else
System.out.println("You don't have "+ contents);
} else if(input.contains("status")){
System.out.println(player);}
else{
System.out.println("What?");}
}
}
}
如果没有错误我会继续获取其他内容而我不知道如何修复它。粗体代码是发生错误的地方。我一直在研究这个问题几个小时,我仍然可以开始工作。拜托,拜托,请帮帮我。
答案 0 :(得分:5)
我认为问题在于您else if
后面有else
。尝试将else
移动到此序列的 last 。
此外,您在同一个else
后面有两个if
语句:
else {
String contents;
...
}
...
else{
System.out.println("What?");}
这会引起其他问题,实际上甚至没有意义。
答案 1 :(得分:2)
这部分是问题所在:
if (!contents.equals(""))
System.out.println("There is:\n" + contents);
else{
System.out.println("This room is empty.");}
else if(input.startsWith("pickup")) {
// ...
}
else if
之后您无法else
。