tutorial the programming language examples apple swift xcode7.3 swift3

swift - the - For-In Loops mĂșltiples condiciones



swift lang (4)

Con la nueva actualización de Xcode 7.3, aparecieron muchos problemas relacionados con la nueva versión de Swift 3. Uno de ellos dice que "C-style for statement está en desuso y se eliminará en una versión futura de Swift" (esto aparece en la versión tradicional). for declaraciones).

Uno de estos bucles tiene más de una condición:

for i = 0; i < 5 && i < products.count; i += 1 { }

Mi pregunta es, ¿hay alguna manera elegante (no usar break ) para incluir esta condición doble en un bucle for-in de Swift:

for i in 0 ..< 5 { }


Aquí hay una solución simple:

var x = 0 while (x < foo.length && x < bar.length) { // Loop body goes here x += 1 }


Otra forma de hacerlo sería así

for i in 0 ..< 5 where i < products.count { }


Puedes usar el operador && con where condición como

let arr = [1,2,3,4,5,6,7,8,9] for i in 1...arr.count where i < 5 { print(i) } //output:- 1 2 3 4 for i in 1...100 where i > 40 && i < 50 && (i % 2 == 0) { print(i) } //output:- 42 44 46 48


Sería justo como dices si lo describes en voz alta:

for i in 0 ..< min(5, products.count) { ... }

Dicho esto, sospecho que realmente quieres decir:

for product in products.prefix(5) { ... }

que es menos propenso a errores que cualquier cosa que requiera subíndices.

Es posible que realmente necesite un índice entero (aunque esto es raro), en cuyo caso quiere decir:

for (index, product) in products.enumerate().prefix(5) { ... }

O incluso podrías obtener un índice real si quisieras con:

for (index, product) in zip(products.indices, products).prefix(5) { ... }