Thread Inhalte eines Arrays tauschen (6 answers)
Opened by User100 at 2010-02-12 11:56

Dubu
 2010-02-12 19:20
#132833 #132833
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Guest User100
Ich meine das Ergebnis ist:
2 1 3 4 5 6 7 8 9 10 11 12 13 14 15 ...


Also bei mir ist das Ergebnis
Code: (dl )
2 3 4 5 6 7 .... 99 100  1

wie zu erwarten. Du tauschst "1" mit "2", dann "1" mit "3" (die "1" ist ja nach dem ersten Schritt an zweiter Stelle) und so weiter, bis die "1" ganz hinten ist. Wenn man sich das Array nach jedem Schritt anschaut, sieht das so aus:
Code: (dl )
1
2
3
4
5
1 2 3 4 5 6 7 .. 99 100
2 1 3 4 5 6 7 .. 99 100
2 3 1 4 5 6 7 .. 99 100
...
2 3 4 5 6 7 .. 99 100 1

Eigentlich sollte es jetzt zu Ende sein, aber deine Schleife geht noch einen Schritt weiter. Leider ist das 101. Element der Schleife nicht gefüllt, also undef, und das wird jetzt mit dem 100. Element getauscht. Daher sieht das Array nach dem letzten Schritt so aus:
Code: (dl )
2 3 4 5 6 7 .. 99 100 undef 0

Das undef erscheint bei der Ausgabe einfach nur als leerer String (oben sieht man auch, dass zwischen der "100" und der "1" zwei Leerzeichen sind!), aber wenn du in deinem Programm use warnings aktiviert hättest, würdest du eine Warnung bekommen, dass $a[99], also das 100. Element, nicht (mehr) initialisiert ist.

Vorschläge, wie man das erreichen kann, was du wahrscheinlich haben wolltest, gab es ja schon ein paar. :-)

View full thread Inhalte eines Arrays tauschen