Warum kann man keine Parameter in die main-Methode packen?

Hallo1234

Bekanntes Mitglied
Hallo,
hier kommt ein etwas längerer Code. Ich weiß einfach nicht, wie ich das mit der Parameterübergabe machen soll. Die beiden in der main-Methode angegebenen Parameter werden von der ermittleLosnummer Methode benötigt. So wie ich es gemacht habe, funktioniert es nicht. Wie könnte es sonst klappen?

Java:
import java.util.Scanner;
public class Lotto {

    public static void main(String[] args, int superZahl, int[] lottoZahlen) {
        Scanner s = new Scanner(System.in);
        
        System.out.println("Geben Sie bitte Ihre Tipps ein: ");
        
        int[] tipps = new int[7];
        
        for(int j = 0; j<tipps.length; j++) {
            
            System.out.print("Tipp "+(j+1)+" :");
            tipps[j] = s.nextInt();
        
        boolean pruefWert = istDoppelt(tipps, j);
        if(pruefWert == true) {
            System.out.println("Es dürfen keine Doppelgänger vorkommen. Bitte erneut eingeben.");
            j = j-1;
        }
            
        if(tipps[j]<=0 || tipps[j]>49) {
            System.out.println("Bitte noch einmal eingeben. Der Tipp war ungültig: ");
            j = j-1;
        }
    }
        superZahl();
        
        int uebersicht = gibTippuebersichtAus(tipps);
        
        minMaxWerte(tipps);
        
        ermittleLosnummer(tipps, superZahl, lottoZahlen);
        
        zieheLottozahlen();
        
    
        
}

    public static int superZahl() {
        Scanner s = new Scanner(System.in);
        System.out.println("Gib deine Superzahl ein: ");
        int superZahl = s.nextInt();
        return superZahl;
    }
    
    public static boolean istDoppelt(int[] tipps, int durchlaeufe) {
        boolean pruefWert = false;
        for(int i = 0; i<durchlaeufe; i++) {
        if(tipps[i] == tipps[durchlaeufe]) {
            pruefWert = true;
            }
        }
        return pruefWert;
    }
    
    public static int[] ermittleLosnummer(int[] tipps, int superZahl, int[] lottoZahlen) {
    
        int[] losnummer = new int[7];
        for(int i = 0; i<losnummer.length; i++) {
            losnummer[i] = ermittleZufallszahl(0,9);
        }
        gibLottoZahlenAus(lottoZahlen);
        
        superZahl();
        
        ermittleTippergebnis(losnummer,tipps, superZahl, lottoZahlen);
        
        return losnummer;
    }
    
    public static int ermittleZufallszahl(int low, int high){
        int zufallszahl = (int) (Math.random() * (high - low + 1)) + low;
        return zufallszahl;
}
    
    public static int gibTippuebersichtAus(int[] tipps) {
        int uebersicht = 0;
        System.out.print("Das sind deine Tipps: ");
        for(int k = 0; k<tipps.length; k++) {
            System.out.print(tipps[k]+ " ");
            
        }
        return uebersicht;
    }
    
    public static void minMaxWerte(int[] tipps) {
        //leer
    }
    
    public static int[] zieheLottozahlen() {
        int[] lottoZahlen = new int[7];
        
        for(int i = 0; i<lottoZahlen.length; i++) {
            
            if(i< lottoZahlen.length-1) {
                lottoZahlen[i] = ermittleZufallszahl(1,49);
        
            }else {
                lottoZahlen[i] = ermittleZufallszahl(0,9);
                }
            }
        gibLottoZahlenAus(lottoZahlen);
        return lottoZahlen;
        }
    
    
    public static void gibLottoZahlenAus(int[] lottoZahlen) {
        System.out.println("\nDie Lottozahlen sind: ");
        
        for(int i = 0; i<(lottoZahlen.length-1); i++) {
            if(i == 0) {
                System.out.print(lottoZahlen[i]);
            }else {
                System.out.print(" "+ lottoZahlen[i]);
            }
        }
        System.out.println();System.out.println("Superzahl: "+lottoZahlen[lottoZahlen.length-1]);
    }
    
    public static int ermittleTippergebnis(int[] losnummer, int[] tipps, int superZahl, int[] lottoZahlen) {
        
        int gewinnklasse = 0;
        if(losnummer[6]==tipps[6]&&superZahl==ermittleZufallszahl(0,9)) {
            gewinnklasse = 1;
        }else if(losnummer[6]==tipps[6]&&superZahl!=ermittleZufallszahl(0,9)) {
            gewinnklasse = 2;
        }else if(losnummer[5]==tipps[5]&&superZahl==ermittleZufallszahl(0,9)) {
            gewinnklasse = 3;
        }else if(losnummer[5]==tipps[5]&&superZahl!=ermittleZufallszahl(0,9)) {
            gewinnklasse = 4;
        }else if(losnummer[4]==tipps[4]&&superZahl==ermittleZufallszahl(0,9)) {
            gewinnklasse = 5;
        }else if(losnummer[4]==tipps[4]&&superZahl!=ermittleZufallszahl(0,9)) {
            gewinnklasse = 6;
        }else if(losnummer[3]==tipps[3]&&superZahl==ermittleZufallszahl(0,9)) {
            gewinnklasse = 7;
        }else if(losnummer[3]==tipps[3]&&superZahl!=ermittleZufallszahl(0,9)) {
            gewinnklasse = 8;
        }else if(losnummer[2]==tipps[2]&&superZahl==ermittleZufallszahl(0,9)) {
            gewinnklasse = 9;
        }
        
        gibGewinnAus(lottoZahlen, gewinnklasse);
        
        return gewinnklasse;
    }
    
    public static void gibGewinnAus(int[] lottoZahlen, int gewinnklasse) {
        System.out.println("Die Zahlen der Ziehung waren: ");
        
        for(int i = 0; i<(lottoZahlen.length-1); i++) {
            if(i == 0) {
                System.out.print(lottoZahlen[i]);
            }else {
                System.out.print(" "+ lottoZahlen[i]);
            }
        }
        System.out.println();System.out.println("Die Superzahl war: "+lottoZahlen[lottoZahlen.length-1]);
        
        System.out.println("Folgenden Gewinn haben Sie erzielt: ");
        switch(gewinnklasse) {
        case 1:
            System.out.println("Superzahl und 6 richtige, Jackpot!");
        break;
        case 2:
            System.out.println("6 richtige.");
        break;
        case 3:
            System.out.println("Superzahl und 5 richtige.");
        break;
        case 4:
            System.out.println("5 richtige.");
        break;
        case 5:
            System.out.println("Superzahl und 4 richtige.");
        break;
        case 6:
            System.out.println("4 richtige");
        break;
        case 7:
            System.out.println("Superzahl und 3 richtige.");
        break;
        case 8:
            System.out.println("3 richtige.");
        break;
        case 9:
            System.out.println("Superzahl und 2 richtige.");
        break;
        
        }
    }
}

Vielen Dank :)
 

Robert Zenz

Top Contributor
"main" muss die Signatur "main(String[])" haben damit die JVM diese ausfuehren kann. Es macht auch keinen Sinn dort andere Parameter zu haben, weil die von nirgendwo kommen koennen. Die JVM weisz ganz bestimmt nicht welche Parameter sie an dieser Stelle uebergeben muss.

Wenn die Parameter aus den Kommandozeilenparametern kommen sollen, dann musst du diese angeben beim starten und "args" auswerten.

Aber wenn ich so deinen Code lese, hast du die Sache einfach nur misverstanden. Schau mal, "superzahl()" liefert einen "int", naemlich genau den Wert den du suchst. Nur wird der im Moment nirgendwo gespeichert, weil du die Funktion aufrufst ohne das Ergebnis zuzuweisen.
 

mihe7

Top Contributor
Ich muss hier was ergänzen: natürlich kannst Du eine Methode mit dem Namen main und den gewünschten Parametern implementieren. Nur ist das eben nicht die Methode, die von der JVM aufgerufen wird :)

Java:
public class Lotto {

    public static void main(String[] args, int superZahl, int[] lottoZahlen) {
         // ...
    }

    // die von der JVM aufgerufene main-Methode:
    public static void main(String[] args) {
        Lotto.main(args, 6, new int[]{1, 2, 3, 4, 5, 6});
    }
}

Ansonsten gilt alles, was @Robert Zenz schon geschrieben hat.
 

mrBrown

Super-Moderator
Mitarbeiter
Ähnliche Java Themen
  Titel Forum Antworten Datum
krgewb Keine richtige Doku Java Basics - Anfänger-Themen 5
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
G Endlosschleife keine Rückgabe Java Basics - Anfänger-Themen 36
Nooobi Regex und .matches() geben keine Ausnahme Java Basics - Anfänger-Themen 10
berserkerdq2 Warum ist das keine Referenzkopie mehr? Java Basics - Anfänger-Themen 26
O Java 17 keine Pflicht um Exceptiones zu behandeln? Java Basics - Anfänger-Themen 2
nbergmann Installation unter jdk.java.net: Keine ZIP-Datei zum entpacken Java Basics - Anfänger-Themen 2
M Eclipse kennt keine String Klasse mehr Java Basics - Anfänger-Themen 1
K Erste Schritte "Taschenrechner" zeigt keine Komma Zahlen an. Java Basics - Anfänger-Themen 8
M Keine Ausführung von System.out.println() Java Basics - Anfänger-Themen 3
B Nach eingefügtem Code erkennt Compiler keine Instanzvar und meldet SyntaxError Java Basics - Anfänger-Themen 2
A keine Ergebnisse - String nummer in array nummer converting Java Basics - Anfänger-Themen 1
JavaClap "Bruchrechner" liefert Fehler/keine Ausgabe bei Addition und Subtraktion Java Basics - Anfänger-Themen 0
M Regex nur Zahlen und Punkt zulassen, Keine Eingabe(Leeres TextFeld) nicht zulassen Java Basics - Anfänger-Themen 6
B Ich kann keine Hühner töten Java Basics - Anfänger-Themen 49
C Ganzzahlige Werte in Boolean ausgeben und überprüfen ob Primzahl oder nicht, wenn es keine Primzahl ist soll es die Primfaktorzerlegung ausgeben Java Basics - Anfänger-Themen 4
I Regex findet keine Treffer Java Basics - Anfänger-Themen 4
B Keine Ausgabe .. Woran liegt das? Ich komme nicht weiter Java Basics - Anfänger-Themen 14
T Bei mir wird keine javac angezeigt sondern nur javacpl Java Basics - Anfänger-Themen 2
R Keine Verbindung mit MariaDB Java Basics - Anfänger-Themen 18
O Input/Output newbile und keine Ahnung! Java Basics - Anfänger-Themen 16
S Kann keine Bilder laden? Java Basics - Anfänger-Themen 9
C Problem: PC ohne Internet und keine Möglichkeit Programme zu laden Java Basics - Anfänger-Themen 5
Bun17 Keine Ausgabe in der Konsole Java Basics - Anfänger-Themen 2
R Keine Verbindung zu MySql über Netbeans Java Basics - Anfänger-Themen 15
D jsoup.select findet keine elemente Java Basics - Anfänger-Themen 2
U Null Exception aber keine Ahnung warum Java Basics - Anfänger-Themen 5
W Was bedeutet im Struktogramm „zufall“ aufrufen (keine Parameterübergabe)? Java Basics - Anfänger-Themen 8
T Keine Ahnung vom Programieren Java Basics - Anfänger-Themen 28
A SelectionSort bringt keine konstanten Ergebnisse Java Basics - Anfänger-Themen 4
J RPN Taschenrechner - keine Lösung!! Java Basics - Anfänger-Themen 84
I equals (Override) mit eigener Exception (keine Runtime-Exception) Java Basics - Anfänger-Themen 9
C Keine javac.exe in bin-Datei Java Basics - Anfänger-Themen 3
A Vollkommene Zahlen: Findet keine Einzige Java Basics - Anfänger-Themen 9
J Input/Output javac HelloWorld.java - Keine Textausgabe in der Konsole Java Basics - Anfänger-Themen 4
H JDK installieren keine Installationsroutine bei Javainstallation sichtbar Java Basics - Anfänger-Themen 4
H Buttons zeigen keine Reaktion Java Basics - Anfänger-Themen 6
I Programm von mir - keine Ahnung mehr ob richtig falsch:-( Java Basics - Anfänger-Themen 6
D Datentypen Datentyperstellung | Kompiler sagt Syntax Error doch ich find keine Lösung Java Basics - Anfänger-Themen 2
snipesss IDE zeigt keine Fehler an, Programm wird jedoch nicht ausgeführt. Java Basics - Anfänger-Themen 18
Khorgoroth Erste Schritte Keine Ausgabe Java Basics - Anfänger-Themen 2
P Listen sortieren mit Binärbaum gibt keine Ausgabe ab 10000 Integern Java Basics - Anfänger-Themen 14
Z AWT package -> keine Konsole? Java Basics - Anfänger-Themen 2
Henri keine Ausgabe Java Basics - Anfänger-Themen 5
J TableView zeigt keine Daten an Java Basics - Anfänger-Themen 14
C Java stellt unter Windows keine Umlaute dar Java Basics - Anfänger-Themen 9
A Keine Konsolenausgabe Java Basics - Anfänger-Themen 5
D Methoden Filewriter macht keine Zeilenumbrüche Java Basics - Anfänger-Themen 3
D Compiler-Fehler NullPointerExeption aber Ecplise zeigt keine Fehler an?! Java Basics - Anfänger-Themen 8
D addActionListener zeigt keine Wirkung Java Basics - Anfänger-Themen 8
S Warum erlaubt ein while-Loop keine Variablen-Declaration wie der for-Loop..? Java Basics - Anfänger-Themen 6
M Lottozahlen 6 aus 49 keine doppelten Java Basics - Anfänger-Themen 5
D Keine Ausgabe in meinem Helden Programm Java Basics - Anfänger-Themen 2
M Keine Ausgabe Java Basics - Anfänger-Themen 4
C PrintWriter schreibt keine in Strings enthaltenen Zeilenumbrüche Java Basics - Anfänger-Themen 9
D Keine Funktion bei "else" Java Basics - Anfänger-Themen 5
J Rückgabe als Wert, keine Referenz Java Basics - Anfänger-Themen 3
K Keine doppelten Zufallszahlen im Array Java Basics - Anfänger-Themen 17
X Einfach verkettete Liste, keine Fehlermeldung Programm friert ein Java Basics - Anfänger-Themen 4
1 Mini Programm, keine Eingabe möglich.. Java Basics - Anfänger-Themen 6
P Wiedereinstieg und kann keine Dateien mehr öffnen... Java Basics - Anfänger-Themen 13
R Keine doppelten Zufallszahlen Java Basics - Anfänger-Themen 2
T Buffererwriter keine Exception obwohl Client weg Java Basics - Anfänger-Themen 2
D Java Eclipse hat scheinbar keine library Java Basics - Anfänger-Themen 2
M Keine Datenbank verbindung Java Basics - Anfänger-Themen 14
E Keine Ausgabe der Konsole Java Basics - Anfänger-Themen 4
Pentalon Eclipse JUNO keine Vorschläge von Methoden bzw. Interfaces der eigenen Klassen Java Basics - Anfänger-Themen 5
tuttle64 Keine Umlaute im Dos Fenster Java Basics - Anfänger-Themen 12
D Erstellte Jar datei zeigt keine Bilder an Java Basics - Anfänger-Themen 5
L Klassen Ich kann keine .jar Dateien mehr öffnen Java Basics - Anfänger-Themen 4
J Haben Chars wirklich keine KeyCodes? Java Basics - Anfänger-Themen 12
L Applet : keine Recht für Zugriff auf Clipboard (trotz Zertifikat) Java Basics - Anfänger-Themen 4
A contains bzw. indexOf liefert keine Treffer? Java Basics - Anfänger-Themen 3
M Java Webstart keine Zugriffe Java Basics - Anfänger-Themen 7
W Eclipse erstellt keine Klassen Java Basics - Anfänger-Themen 6
B Aus einem Eclipse Projekt eine .jar - keine Bilder drin Java Basics - Anfänger-Themen 7
K org.h2.jdbc.JdbcSQLException: Keine Daten verfügbar Java Basics - Anfänger-Themen 9
J Mehrere Zufallszahlen erzeugen, aber keine darf doppelt erzeugt werden - Wie? Java Basics - Anfänger-Themen 5
E String soll mit Großbuchstaben anfangen und keine Sonderzeichen enthalten Java Basics - Anfänger-Themen 4
P Zugriff auf Attribute einer Klasse, zu der keine Verbindung besteht Java Basics - Anfänger-Themen 11
J InputStreamReader + BufferedReader - keine Eingabemöglichkeit Java Basics - Anfänger-Themen 10
T JTable keine spaltenbeschriftung Java Basics - Anfänger-Themen 2
G Input/Output FilenameFilter aber bitte keine Unterordner Java Basics - Anfänger-Themen 5
M nach jar export keine db abfrage möglich Java Basics - Anfänger-Themen 2
G JDK installieren keine eclipse.exe gefunden Java Basics - Anfänger-Themen 16
S Erste Schritte Wo steht eigentlich das ein jar keine andere jars enthalten darf? Java Basics - Anfänger-Themen 19
O Erste Schritte Klassenname zurückgeben, keine instanz Java Basics - Anfänger-Themen 23
K keine Reaktion im TableModel nach ändern der liste? Java Basics - Anfänger-Themen 2
T keine buchstaben!nur zahlen eingabe möglich Java Basics - Anfänger-Themen 48
M keine geschwungenen Klammern Java Basics - Anfänger-Themen 9
E Input/Output Socket bekommt keine Verbindung bei funktionierendem Fremdziel Java Basics - Anfänger-Themen 2
V JavaApplet versendet keine mail Java Basics - Anfänger-Themen 8
B Interface Nach "package"-Nennung keine Toolbar-Icons mehr Java Basics - Anfänger-Themen 5
B Geerbte Instanz kann keine void Methode ausführen?! Java Basics - Anfänger-Themen 15
S Java Web Start lädt keine Bilder Java Basics - Anfänger-Themen 2
P Keine Rechenoperationen bei Doublewert? Java Basics - Anfänger-Themen 4
B Variablen keine Arrayübergabe für getter im Interface Java Basics - Anfänger-Themen 8
I Habe keine Idee was ich als Anfänger programmieren kann. Java Basics - Anfänger-Themen 4
R Kalender speichert keine Zeit Java Basics - Anfänger-Themen 2
A (Scheinbar) keine Schreibrechte in Linux Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben