zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Wir verwenden nextInt(int num), um Zahlen aus dem Bereich von 0 bis 5 auszuwählen, dann addieren wir 1:

wuerfel = rand.nextInt(6)+1;

Der Trick besteht darin die Anzahl der Integer zu bestimmen, die wir für den Ergebnisbereich brauchen, und diese Anzahl als Parameter für nextInt() zu verwenden.

Dann addieren wir den Minimalwert des gewünschten Bereichs. In diesem Beispiel wollen wir 1, 2, 3, 4, 5, 6, also ist die Anzahl der Integer des Ergebnisbereichs 6.

nextInt(6) gibt Zahlen von 0, 1, 2, 3, 4, 5 zurück, also addieren wir 1, um den gewünschten Bereich zu bekommen.

Würfel-Programm

Hier ist ein Programm, das das Werfen eines Würfels simuliert.

import java.util.Random;
import java.util.Scanner;

public class Wuerfeln
{

  public static void main ( String[] args )
  {
    Scanner scan = new Scanner( System.in );
    Random  rand = new Random();

    while ( true )
    {
      System.out.print("Ihr Wurf ist eine " + (rand.nextInt(6)+1) );
      scan.nextLine();
    }
  }
}

Die Anweisung:

Random rand = new Random();

erzeugt einen Zufallszahlengenerator unter Verwendung eines Startwerts, der auf der aktuellen Zeit basiert. Das Programm wird bei jeder Ausführung eine unterschiedliche Zahlensequenz erzeugen.

Die while-Schleife läuft, bis der Anwender Strg+C eingibt (oder das Programm auf andere Weise beendet). Der Schleifenkörper wählt eine Zufallszahl aus dem Bereich von 1 bis 6:

System.out.print("Ihr Wurf ist eine " + (rand.nextInt(6)+1) );

Dann wartet die Schleife bis der Anwender die Eingabetaste betätigt. (Tatsächlich wird jede Eingabe, die mit der Eingabetaste abgeschlossen wird, funktionieren.)

scan.nextLine();

Mit der Eingabe des Anwenders wird nichts getan. Sie wird nur verwendet, um das Programm anzuhalten. (Wir könnten das Programm verbessern, indem wir das Programm beenden, wenn der Anwender "q" für "quit" eingibt.)

FRAGE 6:

Angenommen wir wollen Zufallszahlen im Bereich von -5 bis +5 (inklusive). Wie können wir dafür nextInt() verwenden? (Hinweis: Betrachtet das vorherige Beispiel.)