Java-sproget indeholder hjælpeprogrammer til at generere tilfældige tal i dine programmer. Hvis du ønsker at generere en række tilfældige tal , men ønsker ikke nogen af dem , der skal gentages , skal du bruge betingede tests og loops . Ved at tilføje hvert nummer, du genererer til et sæt indsamlingen objekt, kan du fortælle det samme , om nogen af dem er dubletter. Hvis nummeret er en dublet , kan du instruere Java til at fortsætte generere nye numre , indtil den finder en du ikke allerede har føjet til sættet. Processen involverer to løkker og en betinget erklæring . Instruktioner
1
Importer Java utilities er nødvendige for dit tilfældige tal generation og sæt objekt. Føj følgende kode i toppen af din klasse erklæring: import java.util * ;
Opret et sæt objekt til at gemme de numre, du genererer : . TreeSet myNumbers = new TreeSet ();
Opret en instans af tilfældige klassen til at generere dine tilfældige tal : Random randGen = new Random ();
2
Opret en løkke til at generere din tilfældige tal. Det følgende for-løkke vil køre 20 gange : for ( int i = 0; i < 20, i + + ) {//tal generation her }
Inde i denne løkke , kan du tilføje behandlingen til at generere og tjekke din tilfældige numre for dubletter . Alter tallet 20 for at afspejle det samlede antal tilfældige værdier , du ønsker dit program til at generere . Inde i løkken , generere et tilfældigt heltal : int randNum = randGen.nextInt ();
Dette vil udføre hver gang løkken gentages
3
Tilføj et anden sløjfe . til at klare dubletter numre. Føj følgende kode inde i dit første loop efter det antal generation linje: for (; ;) { //deal med dubletter }
p Dette er en uendelig løkke , så det vil udføre en uendelighed , indtil koden eksplicit bryder ud af det . Inde i denne løkke , kan du instruere Java til at fortsætte generere tilfældige tal, indtil det genererer en, som du ikke allerede har brugt.
4
Tilføj en betinget test på hver tilfældige tal . Indsæt følgende kode i din uendelig løkke : if ( myNumbers.add ( randNum ) ) break; ellers randNum = randGen.nextInt ();
Når du prøver at føje et element til et sæt , metoden returnerer true eller falsk . Hvis elementet ikke allerede er i sættet , returnerer sandt , i hvilket tilfælde din kode kan bryde ud af løkken . Hvis elementet er allerede i sættet , metoden returnerer falsk, i hvilket tilfælde du kan instruere Java til at vælge et andet tilfældigt tal . Sløjfen derefter udføre igen , teste den nye værdi for at se om det er et duplikat . Denne proces fortsætter, indtil en ny værdi er fundet.
5.
Test din kode. Tilføj følgende linie efter din uendelig løkke , men stadig indenfor det ydre loop : System.out.println ( randNum )
Dette vil lade dig se et overblik , at dine tal er alle unikke . Gem filen, kompilere dit program og køre for at teste det . Gennemse output til at kontrollere , at dine funktioner virker .