Eine foreach Schleife in Java nachbilden. Brauche ein wenig Hilfe
-
Kann mir jemand helfen eine foreach Schleife in Java nachzubilden.
Habe bisher nicht gehört das Java ein derartiges Konstrukt von der
Sprachdefinition her mitbringt. Danke schon mal im Voraus.
Anbei die Defintion aus www.de.php.org
----------------------------------------------------------------------
foreach
PHP 4 (nicht PHP 3) enthält ein foreach Konstrukt, genau wie Perl und einige andere Sprachen. Diese ermöglicht es, auf einfache Weise ein Array zu durchlaufen. foreach funktioniert nur in Verbindung mit Arrays. Wenn Sie versuchen foreach mit einer Variable eines anderen Datentyps oder einer nicht initialisierten Variable zu benutzen, gibt PHP einen Fehler aus. Es gibt zwei Syntax-Formen; die zweite ist eine unbedeutende, aber sinnvolle Erweiterung der ersten Syntax:foreach(array_expression as $value) Anweisung
foreach(array_expression as $key => $value) AnweisungDie erste Form durchläuft das array_expression-Array. Bei jedem Durchgang wird der Wert des aktuellen Elements $value zugewiesen und der interne Array-Zeiger um eins erhöht. Dadurch wird beim nächsten Durchgang automatisch das nächste Element ausgewertet.
----------------------------------------------------------
-
Wenn du noch ein paar Monate wartest, dann kannst du ein neues Sprachmittel aus Java 1.5 nutzen, was genau das bietet.
-
Warum unbedingt foreach? Ich finde es im allgemeinen immer wenig sinnvol das wissen,, was man aus anderen Sprachen mitbringt unbedingt 1:1 "mitnehmen" zu wollen. Das führ bei Basic Umsteigern in der Regel dann immer dazu in jeder Sprache nach dem Goto zu fragen :).
Leider kann ich dir in Java nicht die passende Entsprechung liefern (bin selbst noch unwissend), deshalb ein MFC Beispiel mit CList:
POSITION HeadPos = myList.GetHeadPosition();
while( HeadPos )
{
myObject mObject = myList.GetNext(HeadPos);
mObject.TueWas();
}mit einem Array wirds sogar noch einfacher, da man ja in seiner Klasse eh immer wissen sollte wie groß das ist und dann einfach eine for - Schleife / oder while drüber laufen lassen kann.
int m_iAnzElements = 20;
myObject mObject[] = new myObject[m_iAnzElements];
int iCount = 0;
while(iCount < m_iAnzElements)
myObject[iCount++].TueWas();