Java ger verktyg för att generera slumptal i dina program . Om du vill skapa en serie av slumptal , men vill inte någon av dem som skall upprepas , måste du använda villkorliga tester och loopar . Genom att addera varje nummer du skapar en uppsättning samling objekt , kan du berätta omedelbart om någon av dem är dubbletter . Om numret är en dubblett kan du instruera Java fortsätta generera nya siffror tills den hittar en du inte redan har lagt till uppsättningen . Processen involverar två slingor och en villkorlig uppgift . Instruktioner
1
Importera Java verktyg som behövs för din slumptalsgenerering och uppsättning objekt . Lägg till följande kod på toppen av din klass förklaring : import java.util *;
Skapa en uppsättning objekt för att lagra de nummer du genererar : . TreeSet myNumbers = ny TreeSet ( ) ;
Skapa en instans av slumpmässiga klassen för att skapa dina slumptal : Random randGen = new Random ( ) ;
2
Skapa en slinga för att skapa dina slumptal . Följande for-slingan ska köras 20 gånger : for (int i = 0 ; i < 20 , i + + ) { //antal generation här }
Inuti denna loop , kan du lägga till bearbetning för att generera och kontrollera din slumpmässiga nummer för dubbletter . Ändra numret 20 för att återspegla det totala antalet slumpmässiga värden som du vill att ditt program generera . Inne i loopen , generera ett slumpmässigt heltal : int randNum = randGen.nextInt ( ) ;
Detta kommer att köra varje gång slingan itererar Addera 3
Lägg en andra slinga . att hantera dubbla siffror . Lägg till följande kod i din första loop efter antalet generationen raden : for ( ; ;) { //hantera dubbletter }
Detta är en oändlig loop , så det kommer att utföra oändligt tills koden explicit bryter ut den. Inuti denna loop , kan du instruera Java fortsätta generera slumptal tills den genererar en som du inte redan har använts .
4
Lägg ett villkorligt test på varje slumptal . Infoga följande kod i din oändlig slinga : Om ( myNumbers.add ( randNum ) ) break; annars randNum = randGen.nextInt ( ) ;
När du försöker lägga till ett element i en uppsättning , returnerar metoden sant eller falskt . Om elementet inte redan i uppsättningen , returneras sant , då din kod kan bryta sig ut ur loopen . Om elementet är redan i uppsättningen , returnerar metoden false , i vilket fall du kan instruera Java för att välja ett annat slumptal . Slingan kommer sedan köra igen , testa det nya värdet för att se om det är en kopia . Denna process fortsätter tills ett nytt värde hittas .
5
Testa din kod . Lägg till följande rad efter din oändlig slinga , men fortfarande inuti den yttre slingan : System.out.println ( randNum ) ;
Detta låter dig se på en gång att dina siffror är alla unika . Spara filen , kompilera och kör programmet för att testa det . Bläddra igenom utgången för att kontrollera att dina funktioner fungerar .