Wie bekomme ich den Index in a für jede Schleife? Ich möchte Zahlen für jede zweite Iteration drucken
Beispielsweise
for (value in collection) {
if (iteration_no % 2) {
//do something
}
}
In Java haben wir die traditionelle for-Schleife
for (int i = 0; i < collection.length; i++)
Wie bekomme ich das i
?
Antworten:
Zusätzlich zu den von @Audi bereitgestellten Lösungen gibt es auch
forEachIndexed
:quelle
break
drinnen benutzen ?return@forEachIndexed
, im Wesentlichencontinue
zum nächsten Element zu springen. Wenn Sie brechen müssen, müssen Sie es in eine Funktionreturn
einschließen und in der Schleife verwenden, um von dieser umschließenden Funktion zurückzukehren.Verwenden
indices
Wenn Sie Wert sowie Index verwenden möchten
withIndex()
Referenz: Kontrollfluss in Kotlin
quelle
Versuche dies; für Schleife
quelle
Alternativ können Sie die
withIndex
Bibliotheksfunktion verwenden:quelle
Es scheint, dass das, wonach Sie wirklich suchen, ist
filterIndexed
Beispielsweise:
Ergebnis:
quelle
.forEach(::println)
Bereiche führen auch in solchen Situationen zu lesbarem Code:
quelle
(0..collection.lastIndex step 2)