否则没有错误

时间:2013-05-10 17:17:25

标签: java

所以这是我的代码。

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

如果没有错误我会继续获取其他内容而我不知道如何修复它。粗体代码是发生错误的地方。我一直在研究这个问题几个小时,我仍然可以开始工作。拜托,拜托,请帮帮我。

2 个答案:

答案 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