Arrays - Methoden - Java?


09.03.2022, 17:47

Sieht jetzt aus:


09.03.2022, 18:07

Immernoch ein Fehler:

verreisterNutzer  09.03.2022, 17:18

Was soll die ueberpruefe Methode machen..?

Enricolo 
Fragesteller
 09.03.2022, 17:21

Die Methode sol überprüfen, ob die Gewinnzahl (32121) erreicht wurde und dementsprechend den Satz "Hallo, du kleiner Glückshase" wiedergeben.

2 Antworten

Hmmm...

dass da Fehler drin sind, ist ja offensichtlich. Das Programm ist allerdings so falsch, dass ich nicht mal eine Idee hab, was du überhaupt machen willst.

Warum füllst du erst ein Array mit Lottozahlen und pickst dann Zahlen raus, die sich zu einer "Gewinnzahl" verketten? Bzw. willst du überhaupt, dass sie verkettet wird (32121) oder willst du die Summe der drei Zahlen (45) haben?

Warum machst du ein Stringarray für den Satz "Hallo, du kleiner Glückshase"?

Mit welcher Zahl soll die Glückszahl überhaupt verglichen werden? Soll der Benutzer was eingeben? Soll eine Zufallszahl erzeugt werden? So, wie es jetzt ist, wird einfach geprüft, ob die Zahlen "wahr" sind, was immer der Fall ist, wenn sie nicht 0 sind.

Bei der Funktion "ueberprüfe" versuchst du, zwei Methodenreferenzen zu übergeben. Selbst wenn du die Variablen übergeben würdest, könntest du das int-Array mit den Lottozahlen nicht als boolean-Array übergeben. Und du benutzt return, obwohl die Funktion ein void ist.

Bisher könnte man das, was ich glaube, was dein Programm machen soll, so zusammenfassen:

public class Lotto {
	public static void main(String[] args) {
		int gewinnzahl = 32121;
		
		System.out.println("Die heutige Gewinnzahl lautet: " + gewinnzahl + "! Bis zum nächsten Mal bei Lottokönig!");
		if (gewinnzahl == 0) {
			System.out.println("Sie sind heute leider kein Gewinner! Vielleicht beim nächsten Mal");
		} else {
			System.out.println("Hallo, Du kleiner Glückshase!");
		}
	}
}

Ich weiß leider nicht genau mit was du bei ueberpruefe die Zahl abgleichen möchtest, ich nehme mal an, dass du direkt im Code einfach die Zahlen 32121 überprüfen willst du wie gesagt hast.

public boolean ueberpruefe(int[] tipp) {
    return tipp[0] == 3 && tipp[1] == 2 && /* usw */;
}

In der main() müsstest du das dann folgendermaßen machen:

if (ueberpruefe(lottlezahlen)) {
    for (String s : gewinner) {
        System.out.println(s + " ");
    }
    System.out.println();
}

Ich wollte nur erwähnt haben, dass es bessre Lösungen für das Problem gibt, ich aber meine an deinen bereits vorhandenen Code angepasst habe.

Wenn du mir ein wenig mehr erklären könntest was der Code genau machen soll, kann ich vielleicht besser helfen.

Enricolo 
Fragesteller
 09.03.2022, 17:33

Ok danke, werde ich mal versuchen!

1
Enricolo 
Fragesteller
 09.03.2022, 17:47

Hat irgendwie nicht geklappt. Hab es jetzt aber mal so versucht.

0
verreisterNutzer  09.03.2022, 17:48
@Enricolo

Ja, jetzt musst du nur die Methode noch aufrufen - ich weiß aber nicht wie du das mit den Lottozahlen lösen willst, immerhin willst du ein boolean array haben

0
Enricolo 
Fragesteller
 09.03.2022, 18:08
@verreisterNutzer

Will ja nicht nerven, aber es geht irgendwie immernoch nicht. Hab die Methode so hingeschrieben, wie du es gesagt hast.

0
verreisterNutzer  09.03.2022, 18:08
@Enricolo

Ja so war das nicht direkt gedacht, adde mich mal als Freund hier ich kann dir das erklären, esse aber zuerst

0