Array Random Ausgabe

Heiser

Grünschnabel
Hi Leute,
ich versuche von einem array das ('A','B','C','D') mit random nur einen dieser Buchstaben auszugeben. Klappt aber ueberhaupt nicht.
Code:
import java.util.Random;
public class Abc
{
char[] c = {'A','B','C','D'};
Random random = new Random();
for (int i=0; i<c.length; i++) Fehler!!
{
 System.out.println(random.nextInt());
}
}
 
Edit: hatte nicht die geduld und hab 2 mal post geklickt...

hi!

hast du die for-schleife wirklich in der Klasse?

So würds eher funktionieren:
Java:
import java.util.Random;
public class Abc
{
  public static void main(String[] args) throws Exception
  {
    char[] c = {'A','B','C','D'};
    Random random = new Random();
    for (int i=0; i<c.length; i++)
    {
      System.out.println(random.nextInt());
    }
  }
}

greez
THEJS
 
Hi ,danke fuer deine schnelle Antwort.

kein Compiler Fehler mehr :)

Ausgabe von einem Zufallsbuchstaben des Arrays klappt noch nicht:confused:
 
Gut!

Du kannst in der nextInt-Methode die Range angeben:
Java:
for (int i = 0; i < c.length; i++)
{
	System.out.println(c[random.nextInt(c.length-1)]);
}

Bzw. musst du halt auch im Sysout dein Array angeben.
 
1. Du musst dem Random-Objekt mitteilen, das es nur Werte zwischen 0 und 3 annehmen soll .
2. Du gibst nicht den Zufallswert aus, sondern bestimmst mit dem Zufallswert die Stelle im Char-Array, an der dein Buchstabe enthalten ist.

Java:
import java.util.Random;

public class Abc
{
  public static void main(String[] args) throws Exception
  {
    char[] c = {'A','B','C','D'};
    Random random = new Random();
    for (int i=0; i<c.length; i++)
    {
      System.out.println(c[random.nextInt(4)]);
    }
  }
}

//edit: Bin zu langsam ;-)
 
Zuletzt bearbeitet:
Moin,

Ausgabe von einem Zufallsbuchstaben des Arrays klappt noch nicht:confused:

warum sollte es auch, schließlich greifst Du mit Deinen Zufallszahlen nicht auf Dein char-Array 'c' zu !
Schau mal in die API - mit "random.nextInt()" bekommst Du lediglich die nächste der zuvor generierten Zufallszahlen!

Mit Deiner for-Schleife legst Du nur fest, dass die Ausgabe 4x passieren soll, da Du 4 Elemente im Array hast!

Du musst Dir eine Logik basteln, die in Abhängigkeit der Zufallszahl auf das entsprechende Element des Array zugreift, bspw.:

Java:
int ENDWERT = 10;
for (int i = 0; i < ENDWERT; i++)
{
    int iZahl = random.nextInt();
    if( iZahl < c.length )
    {
        System.out.println( c[iZahl] );
    }
}

Dies ist ungetestet, quasi VHIDT :p

Gruß
Klaus
 
Zuletzt bearbeitet:
Zurück