Les recomiendo que si tienen dudas o quieran ampliar mas sobre el tema, puedan leer o utilizar la documentación de Swift. a mi me esta funcionando. Saludos. https://docs.swift.org/swift-book/LanguageGuide/BasicOperators.html
Condicionales y operaciones básicas
Todo lo que aprenderás sobre Swift
Operaciones de asignación y aritmeticas
Comparaciones
Operaciones Ternarias
Operador Nil Coalescing
Rangos
Operadores lógicos
Manipulación de Strings
Strings
Inicialización y mutabilidad
Characters
Índices de Strings
Substrings
Prefijos y Sufijos
Representaciones Unicode
Estructuras de datos
Arrays
Acceder y modificar elementos de un Array
Iterando en Arrays
Conjuntos
Iteraciones y operaciones sobre conjuntos
Diccionarios
Iteración en diccionarios
Sentencias de Control
Ciclo for-in
Ciclo while
Uso de if
Uso de Switch
Switch usando rangos - Interval matching
Switch usando tuplas
Switch con casos compuestos
Sentencias de transferencia de control
Continue y break
Fallthrough
Uso de return y guard
Available en API: Manejo de versiones
Cierre del curso
Cierre del curso y próximos pasos
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Aportes 18
Preguntas 0
Les recomiendo que si tienen dudas o quieran ampliar mas sobre el tema, puedan leer o utilizar la documentación de Swift. a mi me esta funcionando. Saludos. https://docs.swift.org/swift-book/LanguageGuide/BasicOperators.html
Resumen
Hay 3 tipos de rangos:
El rango cerrado es el que incluye ambos valores: inicio y fin.
for idx in 1...5 {
print(idx)
}
Output
1
2
3
4
5
<h3>Rango abierto</h3>
Me permite acceder a cada elemento de un Array de varias formas. Esto es muy util al utilizar rangos dinámicos.
Arrancando desde una posición específica hasta que termine el array:
for name in names[0...] {
print(name)
}
Arrancando desde el principio hasta un valor final específico:
for name in names[…2] {
print(name)
}
<h3>Rango semi abierto</h3>
Es el que incluye el valor de inicio pero no el del final:
for idx in 1..<5 {
print(idx)
}
Output
1
2
3
4
Se escribe un valor inicial, 2 puntos (..
) con el símbolo menor <
y luego el ultimo valor.
1..<5
Este tipo de rango es el que se utilizara para el manejo de Arrays
.
let names = ["Ricardo", "Hernan", "Pedro"]
for i in 0..<names.count {
print("La persona \(i+1) se llama \(names[i])")
}
Output
La persona 1 se llama Ricardo
La persona 2 se llama Hernan
La persona 3 se llama Pedro
//Reto
let thingsOfAHouse = ["Cama", "Mesa", "Cocina", "Sillon", "Television", "Lampara"]
for i in 0...3 {
print("El articulo de la casa numero \(i+1) es \(thingsOfAHouse[i])" )
}
for things in thingsOfAHouse[0...]{
print(things)
}
Hay 2 tipos de rangos en Swift:
Cerrados (1…5)
Semiabiertos (1…<5)
Un solo valor (1…) [Hasta donde acabe] (…2)
let numbers = [7, 15]
for number in numbers[1...]{
print(number)
}
for number in numbers[..<2]{
print(number)
}
for actualNumber in 5...12{
print(actualNumber)
}
for actualNumber in 5..<12{
print(actualNumber)
}
let range = 5...12
range.contains(-1)
range.contains(10)
range.contains(25)
Si quieres recorrer todos los elementos de un array, no necesitas usar un rango abierto.
let names = ["Ed", "Juan", "Pedro"]
// Usamos un rango abierto
for name in names[...2] {
print(name) // Ed, Juan, Pedro
}
Simplemente elimina los corchetes ( [ ] ) y el bucle recorrerá todos los elementos del array automáticamente.
let names = ["Ed", "Juan", "Pedro"]
// Eliminamos los corchetes
for name in names {
print(name) // Ed, Juan, Pedro
}
Este es mi ejemplo de esta clase, espero que les sirva a alguien.
Aqui les dejo algo que me realice para listar los nombres de personas separados por coma exceptuando el ultimo item, que seriia con punto
let names = ["Miguel", "Indira", "Alfonso", "Victoria"]
for name in names {
let lastIndex: Int = names.count - 1
names[lastIndex] == name ? print(name, terminator: ".") : print(name, terminator: ", ")
}
// Miguel, Indira, Alfonso, Victoria.
//reto
let number1 = 1
let number2 = 10
for idx in number1...number2 {
print(idx)
}
for idx in number1..<number2 {
print(idx)
}
for idx in number1... {
print(idx)
}
let rangeNumber2 = ...number2
let firstNumber = 2
let secondNumber = 9
//rango del primer numero hasta el segundo numero(incluyendolo)
let range1 = firstNumber...secondNumber
//rango del primer numero hasta el segundo numero menos 1(no incluyendolo)
let range2 = firstNumber..<secondNumber
//rango desde un inicio no especifico(-infinito) hasta el segundo numero menos uno(no incluido)
let range3 = ..<secondNumber
//rango desde un inicio no especifico(-infinito) hasta el segundo numero(incluido)
let range4 = ...secondNumber
//rango desde el primer numero hasta un final no especifico(+infinito)
let range5 = firstNumber...
Recorriendo el Array sin rangos XD me salio probando…
let names = ["Juan", "Maria", "Iker", "Bimba"]
for name in names{
print(name)
}
let firstNumber = 7
let lastNumber = 12
//Ranges
let firstToLast = firstNumber...lastNumber
let firstWithoutLast = firstNumber..<lastNumber
let lastIndependentOfFirst = ...lastNumber
let firstIndependentOfLast = firstNumber...
Operador de rango cerrado
El operador de rango cerrado ( a...b
) define un rango que va desde a hasta b, e incluye los valores a y b. El valor de a no debe ser mayor que b.
El operador de rango cerrado es útil cuando se itera sobre un rango en el que desea que se usen todos los valores, como con un for- in bucle:
for index in 1...5 {
print("\(index) times 5 is \(index * 5)")
}
// 1 times 5 is 5
// 2 times 5 is 10
// 3 times 5 is 15
// 4 times 5 is 20
// 5 times 5 is 25
Operador de rango medio abierto
El operador de rango medio abierto ( a…<b) define un rango que va desde a hasta b, pero no incluye b. Se dice que está medio abierto porque contiene su primer valor, pero no su valor final. Al igual que con el operador de rango cerrado, el valor de a no debe ser mayor que b. Si el valor de a es igual a b, el rango resultante estará vacío.
Los rangos semi abiertos son particularmente útiles cuando se trabaja con listas de base cero, como matrices, donde es útil contar hasta (pero sin incluir) la longitud de la lista:
let names = ["Anna", "Alex", "Brian", "Jack"]
let count = names.count
for i in 0..<count {
print("Person \(i + 1) is called \(names[i])")
}
// Person 1 is called Anna
// Person 2 is called Alex
// Person 3 is called Brian
// Person 4 is called Jack
Rangos de una cara
for name in names[2...] {
print(name)
}
// Brian
// Jack
for name in names[...2] {
print(name)
}
// Anna
// Alex
// Brian
for name in names[..<2] {
print(name)
}
// Anna
// Alex
let range = ...5
range.contains(7) // false
range.contains(4) // true
range.contains(-1) // true
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.