-1

ここで何が間違っていますか?getMenuChoice()ユーザーが入力した文字に応じて、ユーザーの選択肢を FootballTeam1 および FootballTeam2 に設定しようとしているときに、エラーが発生します。この方法では、オプションのメニューをユーザーに出力し、スキャナーのキーボードを使用してユーザーの選択を受け入れることになっています。ユーザーがリストされたオプションを選択せず​​、メニューを再表示して再度尋ねると、ユーザーの選択を文字列として返すことになっています。これが私のコードです。

 import java.util.Scanner;

public class FootballGame { 
static Scanner keyboard = new Scanner(System.in);
static int arewedone = 0;
static String choice;




public static void main(String[] args) {
      FootballTeam footballTeam1;
      FootballTeam footballTeam2;



    System.out.print("Enter a name for a team:");
    footballTeam1 = new FootballTeam(keyboard.nextLine(), 0);
    System.out.print("Enter a name for another team:");
    footballTeam2 = new FootballTeam(keyboard.nextLine(), 0);

do{
    System.out.println("Game Score:");
    System.out.println(footballTeam1.getName() + ":" + footballTeam1.getScore());
    System.out.println(footballTeam2.getName() + ":" + footballTeam2.getScore());

    choice = getMenuChoice();
    score = handleTeamScore(FootballTeam team);
}while(arewedone == 0);
}

public static String getMenuChoice(FootballTeam footballTeam1, FootballTeam footballTeam2) {
    String input;




    do {
        System.out.println("Select an option:");
        System.out.println("A:" + footballTeam1 + " scored");
        System.out.println("B:" + footballTeam2 + " scored");
        System.out.println("C: game ended.");
        System.out.println("?:");
        input = keyboard.nextLine();
        if (input.equalsIgnoreCase("A")) {
            choice = (footballTeam1);
            arewedone = 0;
        } else if (input.equalsIgnoreCase("B")) {
            choice = (footballTeam2);
            arewedone = 0;
        } else if (input.equalsIgnoreCase("C")) {
            System.out.println("Game Over");
            arewedone++;
        }



    } while (!input.equals("A") && !input.equals("B") && !input.equals("C"));
   return choice;

}
public static void handleTeamScore(FootballTeam team) {

    int points;

    do {

        System.out.println("How many points were scored?");

        System.out.print("?: ");

        points = keyboard.nextInt();

        if ((team.addScore(points)) == true) {

            arewedone++;
        } else {
            System.out.println("That was an invalid option. Please try again.");
            System.out.println("Hints:");
            System.out.println("Touchdown = 6 points");
            System.out.println("Field Goal = 3 points");
            System.out.println("Safety = 2 points");
            System.out.println("Extra Point = 1 point");
                }
        } while (arewedone == 0);

}

}
4

1 に答える 1

0

互換性のない文字列にオブジェクトを割り当てようとしています。
本当にやりたい場合は、オブジェクト型でキャストする必要があります。

于 2013-11-09T02:21:50.533 に答える