# Denkfehler bei for Schleife



## AndiXY (8. Jun 2017)

Kurze Frage, ich soll einfach eine Funktion schreiben welche einen Summenformel löst:


```
public class Summen {
    public static long summe1(){
        long wert1 = 0;
        long wert2 = 0;
        for (int i=0; i<=3; i++)
            wert1 = ((i-1)*(i-1));
            wert2 = wert1+wert2;
    return wert2;
    }
    public static void main(String[] args){

        System.out.println(summe1());

    }
}
```

aber weshalb kommt nicht das selbe Ergebnis raus wie bei dieser Lösung:


```
public class Summen {
    public static long summe1(){
        long wert1 = 0;
        for (int i=0; i<=3; i++)
            wert1 += ((i-1)*(i-1));
    return wert1;
    }
    public static void main(String[] args){

        System.out.println(summe1());

    }
}
```

Ich bin das jetzt mehrere male Gedanklich durchgegangen, eigentlich müssten doch beide Varianten zum gleichen Ergebnis führen.


----------



## Joose (8. Jun 2017)

Bitte deinen Java-Code in Code-Tags packen, danke!
[code=java] ... dein code .. [/code]

Zu deinem Problem:
Du hast bei der for-Schleife die {}-Klammern vergessen. Ohne diese ist nur die nächste Anweisung Teil der for-Schleife.
In deinem Fall ist das `wert1 = ((i-1) * (i-1));` ... wert1 wird x mal neu berechnet und danach 1x zu wert2 dazuaddiert.

Achte darauf deinen Code korrekt zu formatieren, wenn du mit einer IDE arbeitest lass diese den Code für dich formatieren, dann sind solche Fehler besser erkennbar (z.B. durch fehlerhafte Einrückung)!

```
public class Summen {
   public static long summe1() {
       long wert1 = 0;
       long wert2 = 0;
       for (int i = 0; i <= 3; i++)
           wert1 = ((i - 1) * (i - 1));
       wert2 = wert1 + wert2;
       return wert2;
   }
   
   public static void main(String[] args) {
       System.out.println(summe1());
   }
}
```


----------



## AndiXY (8. Jun 2017)

ohman sorry danke wie dumm


----------

