Probleme mit Zufallszahlen...

proXXic

Grünschnabel
Hallo,

ich habe ein kleines Problem mit Java...

Ich muss ein Programm schreiben das ein Feld mit vier zufälligen werten zwischen 0 und 9 generiert und auf dem Bildschirm ausgibt.

Mein Code sieht so aus...

Java:
import java.util.Random;
class RandomArray1 {


	         public static void main(String[]args) {
		getRandomArray();
		print();
	         }
	
	         public static int [] getRandomArray() {
	
	         Random random = new Random(10);	
	         for ( i=0 ; i <4 ; i++ ){
	         int zufall = random.nextInt(10);
	         return getRandomArray;}

	}
		
	public static void print(int[]array){
		
		int[] neu = new int[array];
		for(i = 0; i < blubb; i++){ 
		neu [i] = i+1;}	
	
		}
		
		System.out.print(neu);
}

Als Fehlermeldung wird immer
H:\Programmieren\Übung>javac RandomArray1.java
RandomArray1.java:33: <identifier> expected
System.out.print(neu);
^
RandomArray1.java:33: <identifier> expected
System.out.print(neu);
^
2 errors
ausgegeben...

Wer kann mir bei meinem Problem helfen?
MfG Proxxic
 
Zuletzt bearbeitet von einem Moderator:
Hallo,
bitte DRINGEND die Code-Tags (Button '#') benutzen - so ist das Ganze so ziemlich unleserlich ist

Aber wenn ich das richtig sehe, ist die VAR 'neu' innerhalb der Funktion 'print' deklariert und kann somit außerhalb beim Aufruf von 'System.out.print' nicht bekannt sein .....

Gruß
Klaus
 
Hallo Klaus,

also du meinst das ich die VAR neu im main deklarieren soll?

Das mit den Buttons hab ich nicht gewusst sorry

Hab mich erst vorner halben Stunde angemeldet xD...

MfG
Proxxic
 
Hallo proXXic,

genau - das besagt ja auch Deine Fehlermeldung, dass 'neu' an der Stelle nicht bekannt!

Zudem ist "System.out.print()" eine SYSTEM-Funktion und nicht etwa die von Dir deklarierte Funktion "print"! :eek:

Ich vermute mal, dass Du vor hattest, den Inhalt von 'neu', der in "print" gefüllt wurde auszugeben, ja? Dann musst Du mit Deiner Funktion "print" auch den zurückgeben und ein VAR zuweisen, die dann mit "System.out.print()" ausgegeben werden kann!

Gruß
Klaus

EDIT: Jau, jetzt sieht das oben schön aus -Danke .... :D
EDIT-2: was ist denn "blubb"? Ist auch nicht definiert!
EDIT-3: zudem rufst Du in "main" Deine Funktion 'print' OHNE Parameter auf!
 
Zuletzt bearbeitet:
blubb ist eigentlich neu^^ hab ich vergessen zu ändern... sry xD

Das Problem ist das ich aus "public static void print" nix zurückgeben kann... da es ja void ist!

Und zu edit 3: Ich weiß einfach nicht was da das zugehörige Übergabeparameter ist...^^ ich schätze mal das es print(int[]array) sein muss...

MfG
proXXic
 
Zuletzt bearbeitet:
Sowas sollte funktionieren - ist allerdings ungetestet :

java Code:
Code:
import java.util.Random;
class RandomArray1 
{
    public static void main(String[]args) 
    {
              getRandomArray();
          int[] Zahlen = new int[]array;
              print( Zahlen );
        }
 
        public static int[] getRandomArray() 
    {
        Random random = new Random(10);   
                for ( i=0 ; i <4 ; i++ )
        {
            int zufall = random.nextInt(10);
                    return getRandomArray;
        }
        }
 
        public static static int[] print(int[]array zahlen)
    {
                  int blubb = 100;
        for(i = 0; i < blubb; i++)
              {
                       zahlen = i+1;
                      System.out.print("Zahl<" + i + "> = <" + zahlen + ">");
        } 
    }
}

Gruß
Klaus
 
Zuletzt bearbeitet:
neuer Versuch :D

Code:
import java.util.Random;
class RandomArray1
{
    public static void main(String[]args)
    {
        int[] Zahlen = new int[]array;
        Zahlen = getRandomArray();
        print( Zahlen );
    }

    public static int[] getRandomArray()
    {
        Random random = new Random(10);
        for( i=0 ; i <4 ; i++ )
        {
            int zufall = random.nextInt(10);
            return getRandomArray;
        }
    }

    public static void print(int[]array zahlen)
    {
        int blubb = 100;
        for(i = 0; i < blubb; i++)
        {
            zahlen[i] = i+1;
            System.out.print("Zahl<" + i + "> = <" + zahlen[i] + ">");
        }
    }
}
Gruß
Klaus
 
Zuletzt bearbeitet:
Eine Methode getRandomArray() ist eventuell dazu gedacht, ein Array mit Zufallszahlen zurückzugeben und nicht um sich rekusiv selbst aufzurufen, wie Du es tust, Klaus:

Code:
return getRandomArray;

Davon abgesehen, dass diese Zeile eh einen Compilerfehler erzeugt.

Und warum lässt Du ein Array, das nur 4 Stellen haben soll mit

Code:
int blubb = 100;
        for(i = 0; i < blubb; i++)
        {
            zahlen[i] = i+1;
            System.out.print("Zahl<" + i + "> = <" + zahlen[i] + ">");
        }

100 Mal durchlaufen :confused:
 
Also bei mir schaut das ganze jetzt so aus...

Es werden aber immer noch Fehler angezeigt...

Code:
import java.util.Random;
class RandomArray1 {


	public static void main(String[]args) {
		getRandomArray();
		print(int[]array);
		
	}
	
	
	
	public static int [] getRandomArray() {
	
	Random random = new Random(10);	
	for ( i=0 ; i <4 ; i++ ){
	int zufall = random.nextInt(10);
	return getRandomArray;}
	
	int[] neu = new int[array];
	for(i = 0; i < neu; i++){ 
	neu [i] = i+1;}	
	return 
	
	}
		
	public static void print(int[]array){
		
		System.out.print(neu);
		
		
	}
		
		
		
	
}

das untere return nicht beachten das ist falsch...
 
Code:
int[] neu = new int[array];
Das ist keine gültige Deklaration für ein Array. In den eckigen Klammern muss die Länge des Arrays stehen.


Code:
	for ( i=0 ; i <4 ; i++ ){
	int zufall = random.nextInt(10);
	return getRandomArray;}
Das ist einfach nur syntaktischer Nonsense. Was sollen diese Zeilen bewirken?

Code:
neu [i] = i+1;
Hier würde ich mal überlegen, was in das Array geschrieben wird. Im ersten Durchlauf wird z.B. folgendes geschehen:
neu[0] = 1;
Ist das die Zuweisung, die Du machen möchtest? Oder sollten da nicht Zufallszahlen rein?

Desweiteren darf es in einer Methode nur ein return-Statement geben. Bei Dir sehe ich zwei. Und beim zweiten sagst Du dem armen Compiler noch nicht mal, was er Dir den zurückgeben soll.
 
Zurück