hier das Problem Anforderungseltsame Logik Zahlen drucken rückwärts
ein Verfahren writeNums schreiben, die einen ganzzahligen Parameter n annimmt und drucken die ersten n ganzen Zahlen mit 1 in sequentieller Reihenfolge beginnend, durch Kommas getrennt. Die folgenden Aufrufe erzeugen beispielsweise die folgende Ausgabe:
Anrufausgabe writeNums (5); 1, 2, 3, 4, 5
Und hier ist eine Lösung (Teilweise ist es meine Arbeit und teilweise habe ich online gesucht). Was ich nicht verstehe, ist warum diese Zeile writeNums (n - 1); die Zahlen rückwärts drucken? Es ist ein wenig verwirrend, weil ich erwarte das gedruckt zu bekommen: 5,4,3,2,1
public class WriteNums
{
public static void main(String args[])
{
WriteNums wn=new WriteNums();
wn.writeNums(5);
}
public static void writeNums(int n) {
if (n == 1)
System.out.print("1");
else {
System.out.println(n);
writeNums(n - 1);
System.out.print(", " + n);
}
}
}
Blick in Rekursion und Stack auch der rekursiven Aufrufe – Coder
Was bedeutet der Debugger zeigen Sie, wenn Sie Schritt durch den Code? –
Wenn die Nummer nicht 1 ist, ruft sie writeNum (n-1) auf, aber warum druckt system.out in umgekehrter Reihenfolge? –