2016-07-12 25 views
1

Dies ist also ein Beispiel für eine verschachtelte for-Schleife in swift 2. Es gibt eine for-Schleife knapp oberhalb und direkt darunter Das alles funktioniert direkt nach dem anderen. Ich möchte jedes Mal, wenn die for-Schleife aufgerufen wird, ein Level steigen. Normalerweise, wenn dies eine for-Schleife wäre, würde dies automatisch geschehen, aber da es sich um eine verschachtelte for-Schleife handelt, muss ich sie einmal ausführen und dann zur nächsten for-Schleife springen.Wie man eine Variable so einstellt, dass sie bei 0 beginnt und durch jede Schleife in einer verschachtelten Schleife eine Stufe erreicht. Swift 2

Das Problem ist, dass die Variable bei 0 immer auf 0 gesetzt ist und immer dort beginnt. Gibt es eine Möglichkeit, das Formular post place [u] = place [++] zu übernehmen?

placeLoop: for aPlace in place { 
       print("\(aPlace)") 
       print(" ") 
       var u : Int = 0 
       if aPlace == place[u] { 
        place[u] = place[++u] 
        //This is the manual way to achieve what I want but I have 105 records I want to iterate through, there has to be a better way to do this. 
        //place[u] = var place[u] 
        //place[1] = place[2] 
        //place[2] = place[3] 
        //if aPlace is equal to place0 then 0 = 1, next loop 1 = 2, next loop 2 =3 
        //you can't ++ a "String which place[with an index] is. 

ich so weit diese durch documentation und sah viele verschiedene Fragen Stackoverflow, aber nichts hat geholfen gelesen haben ... Ich war eine switch-Anweisung bedenkt aber nicht sicher, ob das anders funktionieren.

EDIT:

for a in coor { 
    for aPlace in place { 
     for aPass in pass { 


}}} 

Daten in GeoJSON Format: COOR: double (2343,90) Ort: String ("asdfsa ") Pass: String (" asdfkkrr")

plus 3 weitere Datensätze

Ich brauche es für die Eingabe weiter in meinem Code in dieser Reihenfolge: coor1, place1, und pass1 dann coor2, p lace2 und pass2 usw. durch die Daten.

+0

definieren Ihre u Variable außerhalb Ihrer ersten for Schleife und u + = 1 am Ende Ihrer äußeren Schleife –

+0

Wenn Sie feinere Kontrolle über den Index wünschen, versuchen Sie das: http://stackoverflow.com/a/36166965/3141234 – Alexander

+0

Können Sie Erklären Sie mehr den Algorithmus, den Sie ac wollen hieve? – Aladin

Antwort

1

Definieren Sie Ihre u Variable außerhalb des ersten für Schleife und u + = 1 am Ende des Außenlooping

prüfen dieses

var u : Int = 0 
placeLoop: for aPlace in place { 
      print("\(aPlace)") 
      print(" ") 

      if aPlace == place[u] { 
      place[u] = place[++u] 
      //This is the manual way to achieve what I want but I have 105 records I want to iterate through, there has to be a better way to do this. 
      //place[u] = var place[u] 
      //place[1] = place[2] 
      //place[2] = place[3] 
      //if aPlace is equal to place0 then 0 = 1, next loop 1 = 2, next loop 2 =3 
      //you can't ++ a "String which place[with an index] is. 
      u += 1 

Ich hoffe, das hilft Ihnen, Grüße

+0

Definitiv geholfen. Ty. – Staley