Java: Methoden Zahlenreihen?

2 Antworten

startwert und laenge ("reihenlaenge") sollen der Methode übergeben werden. Dazu schreibst du die Variablendeklarationen in die Klammern:

public static dingsreihe(int startwert, int laenge) {
    // tu was
}

Dabei sind startwert und laenge innerhalb der Methode konstant. (Du scheinst startwert zu ändern, das passt nicht zum Namen.)

public static dingsreihe(int startwert, int laenge) {
    int aktuellerWert = startwert;
    for (int i = 1; i <= laenge; ++i) {
        // Ausgabe aktuellerWert
        aktuellerWert = aktuellerWert /* +*^ Zahl */;  // *nach* der Ausgabe, damit startwert selbst auch noch ausgegeben wird
    }
}

Für die Auswahl des Rechenzeichens - kennt ihr schon switch-case? Sonst mehrere if:

public static void zahlenReihe(int startwert, int laenge, char operator) {
    if (operator == '+') {
        plusReihe(startwert, laenge);
    } else if (operator == '*') {
        // malReihe...
    } else if (operator == '^') {
        // hochReihe...
    } else { // "default"-Fall
        // Ausgabe "unbekannter Operator '" + operator.toString() + "': erlaubt sind '+', '*', '^'"
    }
}

Hier könnte man die geschweiften Klammern um den einen Befehl nach dem jeweiligen if auch weglassen, aber nach ein paar Jahrzehnten Erfahrung weiß ich, dass es einfacher ist, jedesmal einfach Klammern zu setzen als immer wieder nachdenken zu müssen, ob es wirklich genau 1 Befehl ist, zu welchem if ein else denn nun gehört und später beim Testen, wo man denn diesmal schon wieder was übersehen hat.

Außerdem hab ich mir angewöhnt, grundsätzlich einen "default"-Fall zu berücksichtigen, und wenn nicht, in einem Kommentar dazuzuschreiben, wieso man wirklich alle Fälle berücksichtigt hat. (Außer bei einer enum, aber da müsste ich prüfen, ob C#/Java inzwischen begriffen hat, dass man bei vollständigem Abgrasen aller enum-Bestandteile nun wirklich keinen default-Fall mehr braucht [/rant])

Woher ich das weiß:Berufserfahrung

Warum hat du Fragezeichen bei den Parametern für die Methoden? Einfach leerlassen sollte gehen in dem Fall, benutzt ja keine Parameter.

plusreihe();

Das reicht schon um die Methode aufzurufen.

Weiß nicht wozu du einen Scanner willst.


Saidax3 
Fragesteller
 27.05.2020, 03:38

@jort93 wegen den virte methode, wie soll "Lassen Sie den Benutzer Startwert, Reihenlänge und Zeichen in der main-Methode eingeben und verwenden Sie die zahlenReihe-Methode, um die jeweilige Zahlenreihe auszugeben." dies machen?

0
jort93  27.05.2020, 09:22
@Saidax3

Ahh, das habe ich etwas übersehen. Dann musst du startwert und länge als parameter haben wie PWolff geschrieben hat. Sonst kannst du die werte ja nicht ändern.

0