# Schleife mit return Anweisung



## ToBe4minimal (2. Feb 2010)

Hallo Leute,

habe ein Problem bei einer eigentlich ganz simplen Frage.

Und zwar würde ich gerne wissen wie man eine Schleife macht, die alle Zahlen von 0 bis 10 in einer Zeichenkette zurück gibt.
Bei mir klappt das nur per Ausgabe, also System.out.print, aber mit return bekomm ich dauernd einen Fehler.

Es will nicht, vor allem wenn ich diese Zahlen als Zeichenkette, also per String ausgeben soll.

Wie macht man sowas?

Eine Schleife per Ausgabe würde ja folgendermaßen aussehen:


```
public void zahlen()
 {
        int i;
        for (i = 0; i <= 10; i++;)
        {
            System.out.print(i);
            i++;
        }
    }
```


Wie funktioniert sowas mit einer return Anweisung??


Danke und LG
Tobi


----------



## eRaaaa (2. Feb 2010)

iterativ z.B. so:
(musst dir halt den String zusammenbauen..am Besten halt mit einem Stringbuilder/buffer)...

```
public String zahlen(int max) {
	StringBuilder sb = new StringBuilder();
	for (int i = 0; i <= max; i++) {
	    sb.append(i);
	}
	return sb.toString();
    }
```


----------



## sambalmueslie (2. Feb 2010)

Also,

erst mal inkrementierst du in deiner For-Schleife, das "i" doppelt und das ist sicher nicht so gewünscht.

Wenn du es zurückgeben möchtest, musst du die Zahlen in einem String speichern und diesen zurückgeben

Beispielsweise so:


```
public String zahlen()
 {
        StringBuffer ergebnis = new StringBuffer();
        for (int i = 0; i <= 10; i++;)
        {
            ergebnis.append(i+"");
        }
        return ergebnis.substring(0);
    }
```

oder alternativ mit "nur" Strings


```
public String zahlen()
 {
        String ergebnis = new String();
        for (int i = 0; i <= 10; i++;)
        {
            ergebnis += i + "";
        }
        return ergebnis;
    }
```

Gruß Oli


----------



## ToBe4minimal (2. Feb 2010)

Hi Oli,

das mit der doppelten inkrementierung war natürlich nicht beabsichtigt.

Danke auf jeden Fall, hat mir sehr geholfen!!


----------

