2016-04-15 6 views
0

ich noch so hier, um die Java gewohnt bin zu werden, ist meine Frage zuerst:Java Fill Array mit vier Zahlen in dem Loop generiert Arrays

ich ein Lotto-Programm, das an dem ich arbeite, ist die Idee, dass das Programm fragt, wie viele Spieler spielen.

Gefolgt von was ist ihr Name und ihre 4 Zahlen, die sie wählen.

Ich habe eine ArrayList von Arrays, ich möchte ihre vier Zahlen in separaten Arrays speichern und ich möchte, dass das Array proportional proportional zur Anzahl der Spieler wächst.

Z. B:

Wenn drei Spieler spielen, 3-Arrays hergestellt werden.

Wenn 1.000.000 Spieler spielen, werden 1.000.000 Felder erstellt.

[Auch mein Code überspringt die 4 Iterationen für die Abfrage von 4 Zahlen.

Mein Code:

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]); 

    } 
} 
} 

Antwort

0

for (j = i; j < = i; j ++) Änderung for (j = 0; j < 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) 

     } 
0

Siehe die folgenden Code für Ihr Wissen.

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; 
    } 

}