Java的填充磁盘阵列和四个数字到回路中产生阵列

问题描述:

我仍然习惯的Java所以这里是我的问题首先:Java的填充磁盘阵列和四个数字到回路中产生阵列

我有我的工作,一个乐透程序,这个想法是,该程序问有多少玩家在玩。

接下来是他们的姓名和他们选择的4个号码。

我有一个ArrayList的数组,我想将他们的四个数字存储到单独的数组中,并且我希望数组随着玩家数量的增加而按比例动态增长。

例如:

如果3个玩家正在玩,3个阵列将被制作。

如果有1,000,000名玩家在玩,将会创建1,000,000个阵列。

[也是我的代码跳过了4次迭代,要求输入4个数字。

我的代码:

import java.util.ArrayList; 
import java.util.Scanner; 

public class lotto_test { 
public static void main(String[] args){ 

    Scanner input = new Scanner(System.in); 

    System.out.println("Enter Amount of Players Playing: "); 
    int players = input.nextInt(); 

    String[] playerNames = new String[players]; 

    int[] lottoNumbers = new int[4]; 
    lottoNumbers[0] = 1; 
    lottoNumbers[1] = 2; 
    lottoNumbers[2] = 3; 
    lottoNumbers[3] = 4; 

    ArrayList<int[]> entryNumbers = new ArrayList<>(); 

    int i; 
    int j; 
    int k; 

    for(k = 0; k < players; k++){ 

     entryNumbers.add(new int[4]); 

    } 

    for(i = 0; i < players; i++) 
    { 

     Scanner loopInput = new Scanner(System.in); 
     System.out.println("Please Enter Your Name Player " + (i+1) + " :"); 
     playerNames[i] = loopInput.next(); 

     for(j = i; j <= i; j++){ 

      System.out.println("Player " + (j + 1) + " : Enter Number " + (j + 1) + " :"); 

      entryNumbers.get(i)[j] = loopInput.nextInt(); 

     }//End For Loop (j) 

    }//End For Loop (i) 

    for(int p = 0; p < players; p++){ 

     System.out.println("Numbers : " + entryNumbers.get(p)[0] + entryNumbers.get(p)[1] + entryNumbers.get(p)[2] + entryNumbers.get(p)[3]); 

    } 
} 
} 

为(J =;Ĵ< = I; J ++)变化为(J = 0;Ĵ< 4; J ++)

for(i = 0; i < players; i++) 
     { 

      Scanner loopInput = new Scanner(System.in); 
      System.out.println("Please Enter Your Name Player " + (i+1) + " :"); 
      playerNames[i] = loopInput.next(); 

      for(j = 0; j < 4; j++){ 

       System.out.println("Player " + (i + 1) + " : Enter Number " + (j + 1) + " :"); 

       entryNumbers.get(i)[j] = loopInput.nextInt(); 

      }//End For Loop (j) 

     } 

请参以下代码为您的知识。

import java.util.ArrayList; 
import java.util.Scanner; 

public class LottoTest { 
    public static void main(String[] args) { 

     Scanner input = new Scanner(System.in); 

     System.out.println("Enter Amount of Players Playing: "); 
     int noOfPlayers = input.nextInt(); 

     ArrayList<Player> players = new ArrayList<Player>(); 

     Player player; 
     // Scanner loopInput = new Scanner(System.in); 
     for (int i = 0; i < noOfPlayers; i++) { 

      System.out.println("Please Enter Name of Player " + (i + 1) + " :"); 

      player = new Player(input.next()); 

      for (int numbers = 0; numbers < 4; numbers++) { 

       System.out.println("Player " + player.name + " : Enter Number " + (numbers + 1) + " :"); 

       player.setNumber(input.nextInt(), numbers); 

      }// End For Loop (j) 

      players.add(player); 

     }// End For Loop (i) 
     input.close(); 
     for (Player p : players) { 

      System.out.println("Player:" + p.name + " Numbers : " + p.getNumber(0) + ":" + p.getNumber(1) + ":" 
        + p.getNumber(2) + ":" + p.getNumber(3)); 

     } 
    } 
} 

class Player { 
    String name; 
    private int[] lottoNumbers = new int[4]; 

    public Player(String name) { 
     this.name = name; 
    } 

    public void setNumber(int number, int index) { 
     if (index < 4) 
      lottoNumbers[index] = number; 
    } 

    public int getNumber(int index) { 
     if (index < 4) 
      return lottoNumbers[index]; 
     return 0; 
    } 

}