Frage von leonardomessi, 45

program mit verschachtelte for schleifen rekursiv schreiben(java)?

Also das program soll einfach für jeden index i z.b.1 11=1 12=2 ...1*10=10; und sollte j %5 == 0 sein dann sollte es für die übersicht ein absatz machen. vielen dank im vorraus

// 2 For schleifen um die Berechnung zu ermöglichen
    for (int i=1;i<=10;i++){
        for(int j=1;j<=10;j++){
            System.out.print(i+"*"+j+"= "+(i*j)+" ");
            //nach 5 Rechnungen immer zeilenumbruch
            if(j%5==0){
                System.out.println();
            }
Antwort
von WhiteGandalf, 8

Es kommt auf die Umgebungsbedingungen an, ob eine Rekursion sinnvoll ist oder nicht.

Es reicht, wenn die Menge der Schleifen, die zu verschachteln sind, von Fall zu Fall variiert. Herkömmlich müsste man dann für jeden solchen Fall eine extra Schleifen-Kaskade schreiben. Mit Rekursion braucht man das trotzdem nur einmal formulieren. Etwa wie hier: http://harryboeck.dyndns.org/Experimente/GuteFrageNet/recursive\_functions.php

Jetzt stellen wir uns noch vor, dass die Menge der varianten Rekursionstiefen etwas größer sein kann und die Komplexität des Codes in den Schleifen etwas komplexer als in dieser trivialen Demo - und schon ist die Sache berechtigt.

Antwort
von Schachpapa, 24

Warum und was willst du daran rekursiv machen? Läuft doch so?

Oder zur Übung, um das Rekursionsprinzip zu verstehen?

Kommentar von Schachpapa ,

So?

   static void einmaleins(int i, int j) {
if (i > 10) {
return;
} else if (j > 10) {
einmaleins(i + 1, 1);
} else {
System.out.printf("%2d * %2d = %2d\t", i, j, i * j);
if (j % 5 == 0) {
System.out.println("");
}
einmaleins(i, j + 1);
}
}
Kommentar von leonardomessi ,

einfach nur üben weil mein kollege meinte es ist sinnvoll für die übung verschachtelte schleifen rekurtsiv zu schreiben weil "anspruchsvoller " ist

Kommentar von gfntom ,

Etwas "zur Übung" zu machen ist ok.

Gerade beim Programmieren gilt aber: So einfach wie möglich, so komplex wie nötig. Es absichtlich "anspruchsvoller" (d.h. komplizierter, weniger leicht lesbar) zu machen, ist kontraproduktiv.
Man könnte ja hier nicht mal sagen, dass der rekursive Code "eleganter" ist.

Kommentar von Schachpapa ,

Stimmt. Keep it simple and stupid (KISS-Prinzip)

Die Schleifen der ursprünglichen Version sind ein bekanntes Prinzip, über das man nicht weiter nachdenken muss, um es zu verstehen.

Das gleiche in eine endrekursive Methode umzusetzen ist weder lesbarer noch performanter.

Lesbarkeit ist eine wichtige Voraussetzung zur Wartbarkeit.

Antwort
von asdfghj2, 21

mir ist nicht ganz klar was du damit meinst:

 für jeden index i z.b.1 11=1 12=2 ...1*10=10

und mir ist auch nicht ganz klar was genau deine Frage ist

Kommentar von PerfectMuffin ,

Formatierung vermutlich.

Keine passende Antwort gefunden?

Fragen Sie die Community