我正在编写一个程序,允许用户输入运动队,然后根据他们输入的团队记录输赢。我相当确定我设置数组的方式是错误的,因为它没有正确增加胜负,有人看到这个问题吗?
import java.util.Scanner;
public class sports {
public static void main(String[] args) {
System.out.println("Howdy sports fan!");
String menuSelect;
String winSelect;
String loseSelect;
int teamSize = 0;
String[] teamsArray = new String[0];
int[] winsArray = new int[0];
int[] lossesArray = new int[0];
do {
System.out.println("Please pick an option from the list below:");
System.out.println("1) Create League");
System.out.println("2) List all teams");
System.out.println("3) Record a win");
System.out.println("4) Record a loss");
System.out.println("5) Quit");
Scanner keyboard = new Scanner(System.in);
menuSelect = keyboard.nextLine();
if ( menuSelect.equals("1") )
{
System.out.println("How many teams should I make?");
try
{
teamSize = Integer.parseInt(keyboard.nextLine());
}
catch (NumberFormatException e)
{
System.out.println("Invalid entry, try again.");
}
teamsArray = new String[teamSize];
for ( int i = 0; i < teamsArray.length; ++i )
{
System.out.println("Team " + (i+1) + "'s name?");
teamsArray[i] = keyboard.nextLine();
}
}
else if ( menuSelect.equals("2") )
{
if (teamsArray.length == 0)
{
System.out.println("There are no teams!");
}
else
System.out.printf("%21s %21s %n", "W", "L");
for ( int i = 0; i < teamsArray.length; ++i )
{
System.out.printf(teamsArray[i] + "%20d %21d %n", winsArray[i], lossesArray[i]);
}
}
else if ( menuSelect.equals("3") )
{
winsArray = new int[teamSize];
System.out.println("Which team won a game?");
winSelect = keyboard.nextLine();
for ( int i = 0; i < teamsArray.length; ++i )
{
if ( winSelect.equals(teamsArray[i]) )
{
++winsArray[i];
}
}
}
else if ( menuSelect.equals("4") )
{
lossesArray = new int[teamSize];
System.out.println("Which team lost a game?");
loseSelect = keyboard.nextLine();
for ( int i = 0; i < teamsArray.length; ++i )
{
if ( loseSelect.equals(teamsArray[i]) )
{
++lossesArray[i];
}
}
}
else
{
System.out.println("Invalid Selection");
}
} while(!menuSelect.equals("5"));
}
}