Aufruf von Methoden durch Methoden

Hansebas

Mitglied
Moin,

ich probier mich gerade am Aufruf von Methoden durch Methoden um dann mit den Variablen weiterarbeiten zu können. Bei der folgenden Aufgabe komme ich nicht weiter und frag euch mal wieder um Hilfe.

Die Methode generiereZufallszahlen() drei Zahlen generieren und zurückgeben. In einer anderen Klasse solle dann die Methode sortiereWerte aufgerufen werden, welche wiederum die Zufallszahlen aus der Methode generiereZufallszahlen() nutzt und sortiert auswirft.

Anscheinend habe ich Probleme, die Methode generiereZufallszahlen() sauber auszuschreiben.
Auch habe ich Probleme die Werte durch die andere Methode aufzurufen.

Kann mir jemand erklären, wo mein Fehler ist?

Java:
import java.util.Random;
import java.util.Scanner;

public class IntSortierung {
  
    public static int x, y, z;
  
    public static boolean wiederholung() {
        String antwort;
        boolean nochmal = false;
      
        Scanner sc = new Scanner(System.in);
        System.out.println("Nochmal? (ja/nein)");
        antwort = sc.nextLine();
              
        if (antwort.equalsIgnoreCase("ja") || antwort.equalsIgnoreCase("j")) {
                nochmal = true;
        }
        return nochmal;
    }
  
    // Sortiermethode
    public static void sortiereWerte(int x, int y, int z) {
                      
       //Sortierung
    }
  
  
    //zufallswerte
public static generiereZufallszahlen(int x, int y, int z) {

  Random IntSortierung_x = new Random();

  x = IntSortierung_x.nextInt();
  y = IntSortierung_x.nextInt();
  z = IntSortierung_x.nextInt();

  return x, y, z;
 
   }
          

}

Java:
import java.util.Scanner;

public class Test_IntSortierung {

    public static void main(String[] args) {

        do
        {
        Scanner sc = new Scanner(System.in);
        System.out.print("(f)ixe oder (z)ufällige Methode? ");
        String antwort = sc.nextLine();
      
        switch (antwort) {
        case "f":
            IntSortierung.sortiereWerte(5, 3, 1);
            break;
          
        case "z":
            IntSortierung.sortiereWerte(IntSortierung.generiereZufallszahlen());
            break;
        }
    }
    while (IntSortierung.wiederholung());
    System.out.println("beendet");
    }

}

Viele Grüße
Hansebas
 
ist angepasst
Java:
    public static int generiereZufallszahlen(int x, int y, int z) {
       
        Random IntSortierung_x = new Random();
       
        x = IntSortierung_x.nextInt();
        y = IntSortierung_x.nextInt();
        z = IntSortierung_x.nextInt();
       
        return x, y, z;
           
            }

eclipse sagt mir allerdings, dass void erwartet wird. Warum? Selbst wenn, eigentlich möchte ich mit einer return-Methode arbeiten.

Schreibe ich die Methode in eine void-Methode um, dann habe ich wiederum/weiterhin hiermit ein Problem

Java:
  IntSortierung.sortiereWerte(IntSortierung.generiereZufallszahlen());
 
Das funktioniert so nicht. Du musst ein int-Array zurückgeben (entsprechend den Rückgabetyp anpassen) und die Methode benötigt keine Parameter.

Außerdem gibt es in Java Benennungkonventionen: Bezeichner für Methoden, Variablen, Parameter werden in lowerCamelCase, Typnamen in UpperCamelCase geschreiben. Unterstriche sind außerhalb von "Konstanten" nicht gerne gesehen.

Java:
    public static int[] generiereZufallszahlen() {
       
        Random zufall = new Random();
       
        int x = zufall.nextInt();
        int y = zufall.nextInt();
        int z = zufall.nextInt();
       
        return new int[]{x, y, z};
    }
 

Zurück
Oben