Java språket gir verktøy for å generere tilfeldige tall innenfor programmene dine. Hvis du vil generere en rekke tilfeldige tall , men ønsker ikke noen av dem skal gjentas , må du bruke betingede tester og looper . Ved å legge hvert nummer du genererer til et sett samling objekt, kan du fortelle umiddelbart om noen av dem er duplikater. Hvis nummeret er en kopi , kan du instruere Java å fortsette å generere nye numre til den finner en du ikke allerede har lagt til settet . Prosessen involverer to looper og en betinget uttalelse . Instruksjoner
en
Importer Java- verktøy er nødvendig for generering av tilfeldige tall og sett objekt. Legg til følgende kode på toppen av din klasse erklæring : import java.util * ;
Lag et sett objekt for å lagre numrene du genererer : . TreeSet myNumbers = new TreeSet ();
opprette en forekomst av den tilfeldige klasse å generere dine tilfeldige tall : Random randGen = new Random ();
2
Lag en løkke til å generere tilfeldige tall . Følgende for loop vil utføre 20 ganger : for ( int i = 0 ; i < 20; i + + ) { //antall generasjon her }
Inne i denne sløyfen , kan du legge til behandling for å generere og sjekke tilfeldig tall for duplikater . Endre nummer 20 for å gjenspeile det totale antallet tilfeldige verdier du vil at programmet skal generere . Inne i loop, generere et tilfeldig heltall: int randNum = randGen.nextInt ();
p Dette vil utføre hver gang løkken gjentar
3
Legg til en ny loop. å takle Duplikatene . Legg til følgende kode i din første bue etter antall generasjon linje : for ( ; ;) { //avtale med duplikater }
p Dette er en uendelig loop, så det vil utføre uendelige inntil koden eksplisitt bryter ut av det. Inne i denne sløyfen , kan du instruere Java å fortsette å generere tilfeldige tall før det genererer en som du ikke allerede har brukt .
4
Legg en betinget test på hver tilfeldig tall. Sett inn følgende kode inni uendelig loop : if ( myNumbers.add ( randNum ) ) break ; annet randNum = randGen.nextInt ();
Når du prøver å legge til et element i et sett , returnerer metoden true eller falsk . Hvis elementet ikke allerede er i settet , går det sant , og da koden din kan bryte ut av loopen . Hvis elementet er allerede i settet , returnerer metoden falske, og da kan du instruere Java for å velge et annet tilfeldig tall. Sløyfen vil deretter utføre igjen , teste den nye verdien for å se om det er et duplikat. Denne prosessen fortsetter til en ny verdi er funnet.
5
Test din kode . Legg til følgende linje etter din uendelig loop, men fortsatt inne i ytterste ledd : System.out.println ( randNum ) ;
p Dette vil la deg se på et øyeblikk på at tallene er alle unike . Lagre filen, kompilere programmet og kjøre for å teste det. Bla gjennom produksjonen for å kontrollere at funksjoner fungerer.