Problem mit Rückgabewert

Hallo1234

Bekanntes Mitglied
Hallo,
bei dieser Aufgabe soll eine Tabelle des kleinen ein mal Eins für num ausgegeben werden. An sich ist es nicht schwer, nur wenn es dann darum geht, das Ergebnis zu returnen anstatt es innerhalb der for-Schleife auszugeben, komme ich an meine Grenzen.
Java:
int num = 5;
    String cal = "";
    for(int i=0; i<10; i++){
        cal = (i+1)+" * "+num+" = "+(i+1)*num;
       //System.out.println(cal);
    }
   return cal;
Deshalb meine Frage, wie schaffe ich es, dass alle Zeilen der Tabelle returnt werden, nicht nur die letzte? Mit einem Array habe ich es schon probiert, klappt aber nicht.
Vielen Dank
 
Es würde auch mit einem einzelnen String gehen, wenn du noch Zeilenumbrüche einfügst.

Code:
Rückgabewert = Rückgabewert + neue Zeile + Zeilenumbruch;

EDIT: Nur zur Klarstellung, ich behaupte nicht, dass das schön ist 😉
 
[CODE lang="java" title="kata9"]public static String[] kata9() {
int num = 5;
//String cal = "";

String[] cal = new String[10];
for(int i=0; i<cal.length; i++){
cal = (i+1)+" * "+num+" = "+(i+1)*num;
//System.out.println(cal);
}
return cal;

}[/CODE]

So hätte ich es mit einem Array gelöst. In der Main sieht der Methodenaufruf so aus:

[CODE lang="java" title="Main"] String[] cal = kata9();
for(int i=0; i<cal.length; i++) {
System.out.println(cal);
}[/CODE]

Es funktioniert auch, allerdings ist die Aufgabe von Codewars. Wenn ich dort den gleichen Code rüberkopiere, gibt es einen Error xD.
1627052707059.png
Der Rückgabewert muss ein String sein. Ich probiere es noch mal mit der Lösung von temi.
 
Java:
public static String kata10() {
        int num = 5;
        String cal = "";
        for(int i=0; i<10; i++){
            cal = (i+1)+" * "+num+" = "+(i+1)*num +"\n";
            //System.out.println(cal);
        }
        return cal = cal + "\n";
    }
So wird trotzdem nur die letzte Zeile ausgegeben : (
 
1*1=12*1=23*1=34*1=45*1=56*1=67*1=78*1=89*1=910*1=10
1*2=22*2=43*2=64*2=85*2=106*2=127*2=148*2=169*2=1810*2=20
1*3=32*3=63*3=94*3=125*3=156*3=187*3=218*3=249*3=2710*3=30
1*4=42*4=83*4=124*4=165*4=206*4=247*4=288*4=329*4=3610*4=40
1*5=52*5=103*5=154*5=205*5=256*5=307*5=358*5=409*5=4510*5=50
1*6=62*6=123*6=184*6=245*6=306*6=367*6=428*6=489*6=5410*6=60
1*7=72*7=143*7=214*7=285*7=356*7=427*7=498*7=569*7=6310*7=70
1*8=82*8=163*8=244*8=325*8=406*8=487*8=568*8=649*8=7210*8=80
1*9=92*9=183*9=274*9=365*9=456*9=547*9=638*9=729*9=8110*9=90
1*10=102*10=203*10=304*10=405*10=506*10=607*10=708*10=809*10=9010*10=100

Eine Tabelle fürs Forum zu erstellen, geht beispielweise so:
Java:
    public static void einmaleins() {
        String s = "";
        s += "[TABLE]";
        for (int i = 1; i <= 10; i++) {
            s += "[TR]";
            for (int j = 1; j <= 10; j++) {
                s += "[TD]" + j + "*" + i + "=" + (j * i) + "[/TD]";
            }
            s += "[/TR]\n";
        }
        s += "[/TABLE]";
        System.out.println(s);
    }

    public static void main(String[] args) {
        einmaleins();
    }

Also: Nicht viel Magie dabei... ( Ich darf da nicht zu lange draufschauen, sonst kann ich das Kleine Einmaleins 😀 )

Weil der Spaß kommutativ ist, sind natürlich die Hälfte der Zellen redundant...
 

Zurück
Oben