# Zahlenfolge mit Schleifen ausgeben



## Antoras (7. Jun 2008)

Hallo, 

hab ein Problem bei folgender Aufgabe:
*
Die Zahlenfolge 1 2 4 7 11 16 22 29 37 soll auf dem Bildschirm ausgegeben werden. Erstellen Sie ein Struktogramm:
1. Unter Verwendung der do-while-Schleife
2. Unter Verwendung der for-Schleife*

Mit Schleifen an sich hab ich eigentlich kein Problem, das Problem ist, dass ich nicht weiß mit welchen Schritten ich hochzählen soll. Das sind ja x-beliebige Zahlen. Kann ich irgendwie sagen, dass ich nach dem x. Durchlauf um so oder so viel hochzählen soll, oder geht das einfacher?


----------



## Guest (7. Jun 2008)

Das sind keine X-beliebigen Zahlen, da ist ein Muster drin.
Der wert um den sich die Zahlen erhöhen verdoppelt sich von einer zu der anderen Zahl!
1 (+1), 2 (+2), 4 (+3), 7 (+4), 11 (+5), 16 (+6), 22 (+7), 29 (+8), 37 also musst du den Wert in der Schleife
pro Durchlauf verdoppeln!


----------



## Antoras (7. Jun 2008)

Verdammt, ich Trottel. Ich hätte es ahnen müssen. Hab zwar nach einem Muster gesucht, aber das ist mir nicht aufgefallen.  

Aber ich muss den doch nicht verdoppeln. Der erhöhte Wert vergrößert sich ja mit jedem Durchlauf bloß um 1. Wie mach ich das?


----------



## Antoras (8. Jun 2008)

Sry für Doppelpost, aber ich bekomm das irgendwie nicht hin. Kann mir da jemand weiterhelfen?


----------



## Schandro (8. Jun 2008)

du musst jeweils zur zahl einen integer addieren, der pro durchlauf um 1 erhöht wird. Wo ist das Problem?


----------



## Antoras (8. Jun 2008)

Irgendwie hatte ich gerade einen Blackout, oder ich versteh die Logik hinterm Programmieren noch immer nicht so richtig. Ich habs jetzt auf jeden Fall. Danke für die Antworten.

```
for(int a=1; a<=37; a=a+b){
    	   b=b+1;
    	   System.out.println(a);
       }
```


----------



## matthias77 (8. Jun 2008)

Also so wie das dasteht, kann es eigentlich nicht funktionieren.
Weil b gar kein Wert zugewiesen ist!
Bei mir geht es jedenfalls nicht, die Lösung würde mich aber schon interessieren!


----------



## matthias77 (8. Jun 2008)

So klappt es 

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

        int b = 0;
        
        for(int i =1; i <= 37; i=i+b){
                b = b+1;
            System.out.println(i);
            
        }
```

Wie sieht es den mit der anderen Schleife aus?


----------



## Antoras (8. Jun 2008)

```
static int b;
public static void main(String[] args){     
       for(int a=1; a<=37; a=a+b){
    	   b=b+1;
    	   System.out.println(a);
}
```


----------



## matthias77 (8. Jun 2008)

Das selbe für die Do_While Schleife:


```
public class Test_Do_While {
    
    public static void main(String[] args){
        
        int a= 1;
        int b= 0;
        
        do{
           a=a+b;
           b=b+1;
            
           System.out.println(a);
           
        } while (a < 37);
    }
}
```


----------



## Antoras (8. Jun 2008)

Ja, die hab ich auch schon. Mit Schleifen an sich hab ich kein Problem, eher mit dem logischen Verständnis.


----------

