# Abbruchbedingung, Schleifen



## jonasvi (19. Jul 2016)

Guten Tag ;D
Ich hätte da eine Frage. Ich wollte alle Fibonacci Zahlen kleiner als eine Zahl x ausgeben und habe gedacht das würde so gehen:


```
public class PaarSchleifen {
    public static void main(String[] args) {

        int i1 = 1;
        int i2 = 1;
        int in;
        do {
            for (int n = 1; ;++n) {
                in = i1 + i2;
                i1 = i2;
                i2 = in;
                System.out.println("Zahl " + in);
            }
        } while (in < 100);

    }
}
```

Verstehe nicht was daran falsch ist. Das ist doch eine DO-WHILE Bedingung.
Habe es auch versucht While oben im Kopf des Codes zu schreiben, aber funktioniert auch nicht.
Ist eine Endlosschleife, ich weiß nicht warum. Ddie Variable "in" habe ich doch auf eine Zahl kleiner x begrenzt (hier 100) in der While Bedingung

Mit freundlichen Grüßen,
jonasvi


----------



## fhoffmann (19. Jul 2016)

Du hast zwei (!) Schleifen. Die for-Schleife bricht nicht ab.


----------



## Cromewell (19. Jul 2016)

jonasvi hat gesagt.:


> for (int n = 1; ;++n)


Du hast hier keine Abbruchbedingung drinne - zwischen den ; ;


----------



## jonasvi (19. Jul 2016)

Cromewell hat gesagt.:


> Du hast hier keine Abbruchbedingung drinne - zwischen den ; ;


Ja, aber das ist ja nur die n-te Fibonacci Stelle. Hat ja nichts mit einer Zahl kleiner als x zu tun. 
Deswegen dachte ich das ich das halt so laufen lasse bis die While Schleife Stopp sagt.

Danke für die Tipps. Wieder etwas dazugelernt. War blind.


```
long i1 = 1;
long i2 = 1;
long in=0;
              while(i1+i2<90){
                in = i1 + i2;
                i1 = i2;
                i2 = in;
                System.out.println("Zahl " + in);
```
funktioniert
Mfg.


----------



## Cromewell (19. Jul 2016)

jonasvi hat gesagt.:


> for (int n = 1; ;++n)


Oder dort einfach in < 90 oder so rein und do while weg.


```
int i1 = 1;
        int i2 = 1;
        int in = 0;
        for (int n = 1; in < 100 ;++n) {
            in = i1 + i2;
            i1 = i2;
            i2 = in;
            System.out.println("Zahl " + in);
        }
```
also so in etwa


----------

