-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同じ後に 2 つのステートメントがあり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 if後は使えませんelse

于 2013-05-10T17:19:10.110 に答える