logo

Java.util.Random.nextInt() a Java

La generació de nombres aleatoris té un bon valor d'utilitat i aconseguir-los mitjançant l'ús de la funció pot resultar molt útil. Java en el seu llenguatge ha dedicat tota una biblioteca als números aleatoris veient la seva importància en la programació diària. nextInt() es parla en aquest article.

    java.util.Random.nextInt(): El nextInt() s'utilitza per obtenir el següent valor enter aleatori de la seqüència d'aquest generador de nombres aleatoris.



     Declaration :  public int nextInt() Parameters :  NA Return Value :  The method call returns the next integer number from the sequence Exception :  NA>

    L'exemple següent mostra l'ús de java.util.Random.nextInt()

    nat vs llit








    // Java code to demonstrate the working> // of nextInt()> import> java.util.*;> public> class> NextInt1 {> >public> static> void> main(String[] args)> >{> > >// create random object> >Random ran =>new> Random();> > >// generating integer> >int> nxt = ran.nextInt();> > >// Printing the random Number> >System.out.println> >(>'The Randomly generated integer is : '> + nxt);> >}> }>

    >

    >

    Sortida:

     The Randomly generated integer is : -2052834321>
    java.util.Random.nextInt(int n): El nextInt(int n) s'utilitza per obtenir un nombre aleatori entre 0 (inclòs) i el nombre passat en aquest argument (n), exclusiu.

     Declaration :  public int nextInt(int n) Parameters :  n :  This is the bound on the random number to be returned. Must be positive. Return Value :  Returns a random number. between 0 (inclusive) and n (exclusive). Exception :  IllegalArgumentException : This is thrown if n is not positive.>

    L'exemple següent mostra l'ús de java.util.Random.nextInt(int n)




    // Java code to demonstrate the working> // of nextInt(n)> import> java.util.*;> public> class> NextInt2 {> >public> static> void> main(String args[])> >{> > >// create random object> >Random ran =>new> Random();> > >// Print next int value> >// Returns number between 0-9> >int> nxt = ran.nextInt(>10>);> > >// Printing the random number> >// between 0 and 9> >System.out.println> >(>'Random number between 0 and 10 is : '> + nxt);> >}> }>

    >

    >

    Sortida:

     Random number between 0 and 9 is : 4>
Excepció

IllegalArgumentException: Això passa quan l'argument passat no és positiu.
Un exemple per il·lustrar l'excepció generada quan n no és un nombre positiu:




comanda sed
// Java code to demonstrate the Exception> // of nextInt(n)> import> java.util.*;> public> class> NextInt2 {> >public> static> void> main(String[] args)> >{> > >// create random object> >Random ran =>new> Random();> > >// generating number between 0 and -12345> >// Raises Runtime error, as n is negative.> >int> nxt = ran.nextInt(->12345>);> > >System.out.println> >(>'Generated Random number is : '> + nxt);> >}> }>

>

>

Errors de temps d'execució:

 Exception in thread 'main' java.lang.IllegalArgumentException: bound must be positive at java.util.Random.nextInt(Random.java:388) at NextInt2.main(NextInt2.java:14)>

Aplicacions pràctiques

La generació de números aleatoris té nombroses aplicacions, sigui és loteria, jocs d'atzar o jocs a petita escala . A continuació s'ha demostrat un petit joc de daus en què 2 jugadors llancen un dau de 6 punts, la persona que aconsegueix 30 punts en primer lloc, guanya.

javac no es reconeix




// Java code to demonstrate the Application> // of nextInt(n)> import> java.util.*;> public> class> NextIntAppli {> >public> static> void> main(String[] args)> >{> > >int> sum =>0>, sum1 =>0>, count =>0>, count1 =>0>;> >int> turn =>0>;> > >// creating random object> >Random ran =>new> Random();> >int> flag =>0>;> > >while> (>true>) {> >if> (turn %>2> ==>0>) {> > >int> p1 = ran.nextInt(>6>);> >sum += p1;> >System.out.printf> >(>'Player 1 after turn %d is : %d '>, turn, sum);> >}> >else> {> > >int> p2 = ran.nextInt(>6>);> >sum1 += p2;> >System.out.printf> >(>'Player 2 after turn %d is : %d '>, turn, sum1);> >}> >if> (sum>=>30>) {> >flag =>1>;> >break>;> >}> >if> (sum1>=>30>) {> >flag =>2>;> >break>;> >}> >turn++;> >}> >if> (flag ==>1>)> >System.out.println(>' Player 1 WON!!'>);> >else> >System.out.println(>' Player 2 WON!!'>);> >}> }>

>

>

Sortida:

 Player 1 after turn 0 is : 0 Player 2 after turn 1 is : 4 Player 1 after turn 2 is : 2 Player 2 after turn 3 is : 9 Player 1 after turn 4 is : 5 Player 2 after turn 5 is : 9 Player 1 after turn 6 is : 6 Player 2 after turn 7 is : 14 Player 1 after turn 8 is : 8 Player 2 after turn 9 is : 18 Player 1 after turn 10 is : 12 Player 2 after turn 11 is : 21 Player 1 after turn 12 is : 13 Player 2 after turn 13 is : 26 Player 1 after turn 14 is : 18 Player 2 after turn 15 is : 29 Player 1 after turn 16 is : 18 Player 2 after turn 17 is : 34 Player 2 WON!!>