# For-Schleifen unterschied?



## Loddakwin (15. Nov 2015)

Hallo also ich hab 2 Schleifen und versteh nicht wieso die eine funktioniert und die anderen nicht also was hier der genaue unterschied ist?
Vielleicht könnte mir das wer erklären.


```
static String cipherExtendedCaesar(String text, int rotation) {

        String simple = cipherSimpleCaesar(text, rotation);
        String inverse = new StringBuilder(simple).reverse().toString();
        inverse = inverse.replaceAll(" ", "");

        StringCharacterIterator simpleIter = new StringCharacterIterator(simple);
        StringCharacterIterator inverseIter = new StringCharacterIterator(inverse);

        String result = "";
        //funktioniert
        for (char sim = simpleIter.first(), inv = inverseIter.first(); sim != CharacterIterator.DONE; sim = simpleIter
                .next(), inv = inverseIter.next()) {
            if (sim == ' ') {
                result = result + " " + simpleIter.next() + inverseIter.current();
            } else {
                result = result + sim + inv;
            }
        }

        // funktioniert nicht
        for (int i = 0; i < simple.length(); i++) {
            if (text.charAt(i) == ' ') {
                result = result + " " + simple.charAt(i + 1) + inverse.charAt(i);
            } else {
                result = result + simple.charAt(i) + inverse.charAt(i);
            }
        }
        return result;
    }
```

lg


----------



## stg (15. Nov 2015)

"Funktioniert nicht" ist keine aussagekräftige Beschreibung des Problems. Überarbeite deine Frage noch einmal, dann kann man dir auch besser helfen.


----------



## Loddakwin (15. Nov 2015)

Also die Zeichen werden nicht so zusammengesetzt wie bei der oberen Schleife? Bei der unteren läuft die schleife irgendwie aus dem indizesbereich ich versteh das nicht, da die obere doch dasselbe macht?

lg


----------



## Dompteur (15. Nov 2015)

In der ersten Schleife wird bei manchen Durchläufen ein 2. Mal "simpleIter.next()" aufgerufen.


----------

