logo

Java.util.Random.nextInt() w Javie

Samo generowanie liczb losowych ma dobrą wartość użytkową, a ich osiągnięcie za pomocą funkcji może okazać się bardzo przydatne. Java w swoim języku poświęciła całą bibliotekę liczbom losowym, widząc ich znaczenie w programowaniu dziennym. nextInt() zostało omówione w tym artykule.

    java.util.Random.nextInt(): The następnyInt() służy do uzyskania kolejnej losowej wartości całkowitej z sekwencji generatora liczb losowych.

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

    Poniższy przykład ilustruje użycie metody java.util.Random.nextInt()






    sąsiednie kąty
    // 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);> >}> }>

    >

    >

    Wyjście:

     The Randomly generated integer is : -2052834321>
    java.util.Random.nextInt(int n): The następnyInt(int n) służy do uzyskania losowej liczby z zakresu od 0 (włącznie) do liczby przekazanej w tym argumencie (n), wyłącznie.

     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.>

    Poniższy przykład ilustruje użycie 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);> >}> }>

    ile uncji to 10 mililitrów

    >

    >

    Wyjście:

     Random number between 0 and 9 is : 4>
Wyjątek

IllegalArgumentException: Dzieje się tak, gdy przekazany argument nie jest dodatni.
Przykład ilustrujący wyjątek wygenerowany, gdy n nie jest liczbą dodatnią:




instrukcja if-else Java
// 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);> >}> }>

>

>

Błędy czasu wykonania:

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

Praktyczne zastosowania

Generowanie liczb losowych ma wiele zastosowań, np to loteria, hazard lub gry na małą skalę . Poniżej pokazano małą grę w kości, w której 2 graczy rzuca kostką za 6 punktów, a wygrywa osoba, która jako pierwsza zdobędzie 30 punktów.

normalne formy




// 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!!'>);> >}> }>

>

>

Wyjście:

 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!!>