-8

所以这是我的代码。

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?");}
    }
  }
  } 

我不断得到一个没有if错误的else,我不知道如何解决它。粗体代码是发生错误的地方。我已经为此工作了几个小时,但我仍然无法让它工作。请,请,请帮助我。

4

2 回答 2

5

我认为问题在于你有一个else if追随者else。尝试将 移动到此序列else最后一个

此外,您有两个else相同的语句if

else {
    String contents;
    ...
}
...
else{
    System.out.println("What?");}

这会导致额外的问题,甚至没有意义,真的。

于 2013-05-10T17:19:19.297 回答
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 ifafter else

于 2013-05-10T17:19:10.110 回答