CursosEmpresasBlogLiveConfPrecios

Ciclo while

Clase 23 de 33 • Curso de Programación en Swift (2019)

Clase anteriorSiguiente clase

Contenido del curso

Condicionales y operaciones básicas
  • 1
    Todo lo que aprenderás sobre Swift

    Todo lo que aprenderás sobre Swift

    02:01
  • 2
    Operaciones de asignación y aritmeticas

    Operaciones de asignación y aritmeticas

    13:14
  • 3
    Comparaciones

    Comparaciones

    09:19
  • 4
    Operaciones Ternarias

    Operaciones Ternarias

    07:35
  • 5
    Operador Nil Coalescing

    Operador Nil Coalescing

    06:53
  • 6
    Rangos

    Rangos

    10:13
  • 7
    Operadores lógicos

    Operadores lógicos

    11:07
Manipulación de Strings
  • 8
    Strings

    Strings

    12:26
  • 9
    Inicialización y mutabilidad

    Inicialización y mutabilidad

    09:35
  • 10
    Characters

    Characters

    11:28
  • 11
    Índices de Strings

    Índices de Strings

    12:21
  • 12
    Substrings

    Substrings

    05:08
  • 13
    Prefijos y Sufijos

    Prefijos y Sufijos

    06:25
  • 14
    Representaciones Unicode

    Representaciones Unicode

    08:57
Estructuras de datos
  • 15
    Arrays

    Arrays

    08:05
  • 16
    Acceder y modificar elementos de un Array

    Acceder y modificar elementos de un Array

    08:24
  • 17
    Iterando en Arrays

    Iterando en Arrays

    04:17
  • 18
    Conjuntos

    Conjuntos

    11:21
  • 19
    Iteraciones y operaciones sobre conjuntos

    Iteraciones y operaciones sobre conjuntos

    11:01
  • 20
    Diccionarios

    Diccionarios

    12:55
  • 21
    Iteración en diccionarios

    Iteración en diccionarios

    07:12
Sentencias de Control
  • 22
    Ciclo for-in

    Ciclo for-in

    12:29
  • 23
    Ciclo while

    Ciclo while

    09:26
  • 24
    Uso de if

    Uso de if

    09:24
  • 25
    Uso de Switch

    Uso de Switch

    07:42
  • 26
    Switch usando rangos - Interval matching

    Switch usando rangos - Interval matching

    06:24
  • 27
    Switch usando tuplas

    Switch usando tuplas

    09:31
  • 28
    Switch con casos compuestos

    Switch con casos compuestos

    07:51
Sentencias de transferencia de control
  • 29
    Continue y break

    Continue y break

    08:22
  • 30
    Fallthrough

    Fallthrough

    06:02
  • 31
    Uso de return y guard

    Uso de return y guard

    09:34
  • 32
    Available en API: Manejo de versiones

    Available en API: Manejo de versiones

    04:33
Cierre del curso
  • 33
    Cierre del curso y próximos pasos

    Cierre del curso y próximos pasos

    01:33
    Ignacio Castillejo Gómez

    Ignacio Castillejo Gómez

    student•
    hace 6 años

    Mi MacBook Pro i7 no pudo acabar el ciclo en menos de 3 minutos 😂

    import UIKit func isPrime(n: UInt64) -> Bool { if n == 0 { return false } if n == 1 { return false } var found = false var min: UInt64 = 2 // Primer posible divisor let max: UInt64 = UInt64(n / 2) // Matematicamente esta demostrado que si no existe hasta n / 2 no existe divisor \LOL while min <= max && !found { found = n % min == 0 min += 1 } return !found } for n in 0...100000 { if isPrime(n: UInt64(n)) { print("\(n)", terminator: " ") } }
      Jesus Espino

      Jesus Espino

      student•
      hace 5 años

      Si quieres que vaya más rápido, puedes cambiar to variable max a max=sqrt(n) 😛

      Luis Abdel Rangel Castro

      Luis Abdel Rangel Castro

      student•
      hace 5 años
      func isPrime(n : UInt64) -> Bool { if n == 0 { return false } if n == 1 { return false } var found = false var min: UInt64 = 2 // Primer posible divisor let max: UInt64 = UInt64(n / 2) // Matematicamente esta demostrado que si no existe hasta n / 2 no existe divisor \LOL while min <= max && !found { found = n % min != 0 min += 1 } return found } for n in 0...1000 { if isPrime(n: UInt64(n)) { print("\(n)", terminator: " ") } }
    Jose Miguel Serrato Moreno

    Jose Miguel Serrato Moreno

    student•
    hace 6 años
    let endNumber = 100 var startNumber = 2 var primeNumbers:[Int] = [] while startNumber <= 100 { var isPrime = true for idx in 2..<startNumber { if startNumber % idx == 0 { if idx != 1 && idx != startNumber { isPrime = false } } } if isPrime { primeNumbers.append(startNumber) } startNumber += 1 }
      Hugo Andres Martinez

      Hugo Andres Martinez

      student•
      hace 4 años

      me gusto tu codigo, nada mas me podrias explicar la parte del

      for idx in 2..<startNumber{} es que no comprendo porque se supone que sera del 2 hasta el start number, y el startnumber = 2. Podrias explicarme esa parte por favor

    Diego Mojarro

    Diego Mojarro

    student•
    hace 5 años
    let ini = 2 let fin = 100 var prime : [Int] = [] for i in ini...fin { var isPrime = true for j in ini..<i { if i % j == 0{ isPrime = false } } if isPrime{ prime.append(i) } }
    Gera Meraki

    Gera Meraki

    student•
    hace 4 años

    Les dejo la información a continuación, vale la pena darnos una vuelta y leer esto 😱

    https://es.wikipedia.org/wiki/Criba_de_Erat%C3%B3stenes

    Pedro Alejandro Montaño Herrera

    Pedro Alejandro Montaño Herrera

    student•
    hace 6 años
    Numerosprimos.PNG
    Jessica Balanta Restrepo

    Jessica Balanta Restrepo

    student•
    hace 2 años

    Reto:

    var contador = 0 while contador <= 10 { contador += 1 } print(contador)

    repeat{ contador += 1 }while contador <= 0 print(contador)

    //ejercicio tomar un numero del 2 al 100 y localizar el numero primo.

    let numerPrime = 100 var startNumber = 2 var primeNumers:[Int] = [] while startNumber <= 100 { var isPrime = true for divisor in 2..<startNumber { if startNumber % divisor == 0{ if divisor != 1 && divisor != startNumber { isPrime = false } } } if isPrime {

    primeNumers.append(startNumber) } startNumber += 1

    } print(primeNumers)

    Fabián Recuero

    Fabián Recuero

    student•
    hace 3 años

    Mi solución

    var numStart = 2 var mult = 1 var count = 0 while numStart <= 100 { while mult <= numStart { if (numStart % mult) == 0 { count += 1 } mult += 1 } if count <= 2 { print("\(numStart) es un número primo") } numStart += 1 mult = 1 count = 0 }
    Wilson Montenegro

    Wilson Montenegro

    student•
    hace 6 años
    // Reto var numbers = Set<Int>() var criba = Set<Int>() for totalNumbers in 1...100 { numbers.insert(totalNumbers) } criba.insert(1) for multiplesOf2 in stride(from: 4, to: 101, by: 2){ criba.insert(multiplesOf2) } for multiplesOf3 in stride(from: 6, to: 101, by: 3){ criba.insert(multiplesOf3) } for multiplesOf5 in stride(from: 10, to: 101, by: 5){ criba.insert(multiplesOf5) } for multiplesOf7 in stride(from: 14, to: 101, by: 7){ criba.insert(multiplesOf7) } let primeNumbers = numbers.symmetricDifference(criba).sorted() print(primeNumbers)
    Juan Sebastián Vargas Castañeda

    Juan Sebastián Vargas Castañeda

    student•
    hace 5 años

    Naive Algorithm

    //Ejercicio - Número primos del 2 al 100 let n = 100 var number = 2 //From number to 100 var div = 2 //First prime number, first divisor for all numbers from now on. while number <= n { var isPrime = true //Let's assume number is always prime until we demonstrate the opposite while (isPrime) && (number != div) { isPrime = ( number % div != 0 ) div += 1 } div = 2 //Reset div to 2 to iterate for the next loop if isPrime { print(number, separator: "", terminator: " ") //Wanna know which ones are primes } number += 1 //Next number } //OUTPUT:2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
    Luis Martin Maceda

    Luis Martin Maceda

    student•
    hace 6 años
    var min = 2 var max = 100 var noPrimos = Set<Int>() print("Los numeros primos en el rango 2 a 100: ", terminator: " ") while min < max { for aux in (min+1)...max { if aux%min == 0 { noPrimos.insert(aux) } } if !noPrimos.contains(min) { print("\(min),", terminator: " ") } min += 1 }
    Francisco Guadalupe Roque Reyes

    Francisco Guadalupe Roque Reyes

    student•
    hace 2 años

    repeat{

    num += 1

    res = num % 2

    if res != 0{

    res = num % 3

    if res != 0{

    res = num % 5

    if res != 0{

    res = num % 7

    if res != 0{

    print("El numero \(num) es numero impar")

    }

    else if num == 7{

    print("El numero \(num) es numero impar")

    }

    }else if num == 5{

    print("El numero \(num) es numero impar")

    }

    }else if num == 3{

    print("El numero \(num) es numero impar")

    }

    }else if num == 2{

    print("El numero \(num) es numero impar")

    }

    }while num <= 100

    Joseal Pantoja Durán

    Joseal Pantoja Durán

    student•
    hace 2 años

    una respuesta mas concisa, usando la Criba e inspirándome en los resultados de mis compas

    import UIKit var minRange = 2 var maxRange = 100 var prime = Set<Int>() var noPrime = Set<Int>() var numbers = Set<Int>() for criba in minRange...maxRange{ numbers.insert(criba) for criba2 in stride(from: criba, to: maxRange + 1, by: criba){ if criba2 % criba == 0{ if criba2 != 1 && criba2 != criba { noPrime.insert(criba2) } } } } prime = numbers.subtracting(noPrime) print("En total hay \(prime.count) numeros primos y son: \(prime.sorted())") print("En total hay \(noPrime.count) numeros NO primos y son: \(noPrime.sorted())")
    Joseal Pantoja Durán

    Joseal Pantoja Durán

    student•
    hace 2 años

    este es mi segundo aporte usando la Criba de Eratostenes

    import UIKit var minRange = 2 var maxRange = 100 var criba = [Int]() // esta variable existe porque con un Set, no se puede usar un contador dinamico var cribaSet = Set<Int>() var prime = Set<Int>() var noPrime = Set<Int>() var dinanicCount = 0 var tempCount = 0 for cribaFill in minRange...maxRange{ criba.append(cribaFill) cribaSet.insert(cribaFill) } while criba[dinanicCount] * criba[dinanicCount] <= criba[criba.count - 2]{ // Este while agrega a No Prime los multiplos de criba y los guarda en un Set "cribaSet" tempCount = criba[dinanicCount] while tempCount < criba[criba.count - 2]{ tempCount += criba[dinanicCount] noPrime.insert(tempCount) } criba[dinanicCount] += 1 } prime = cribaSet.subtracting(noPrime) print("En total hay \(prime.count) numeros primos y son: \(prime.sorted())") print("En total hay \(noPrime.count) numeros NO primos y son: \(noPrime.sorted())")
    Rodrigo Consuelos

    Rodrigo Consuelos

    student•
    hace 2 años
    import UIKit let limiteSuperior : UInt = 100 var numbers = Array(stride(from: 1 as UInt, through: limiteSuperior, by: 2)) //Arreglo de numeros impares, no hay primo par salvo el 2 numbers[0] = 2 var primos = [UInt]() //arreglo de primos var esPrimo : Bool = true //variable para permitir ingreso del número al arreglo de primos var number : UInt //numero que analizaremos si es primo /* Obtener el numero a analizar (el primero del arreglo) Se divide entre los anteriores primos. Si no es divisible por ninguno entonces es primo y se agrega al arreglo primos Nos quedamos con un arreglo de números en donde no hay múltiplos del número que analizamos */ while !numbers.isEmpty { number = numbers.removeFirst() esPrimo = true if !primos.isEmpty { for primo in primos { if number % primo == 0 { esPrimo = false break } } } numbers = numbers.filter{$0 % number != 0} //Nos quedamos con un arreglo donde no haya múltiplos del número analizado if esPrimo { primos.append(number) } } /* for primo in primos { print(primo) } */ print("Entre 1 y", limiteSuperior, "hay", primos.count,"primos")
    Josias Pérez

    Josias Pérez

    student•
    hace 2 años
    //Reto let endNumber = 100 var primeNumbers: [Int] = [] for number in 2...endNumber { var isPrime = true for factor in 2..<number { if number % factor == 0 { isPrime = false break } } if isPrime { primeNumbers.append(number) } } print("Números primos del 2 al 100: \(primeNumbers)")
    Armando Aguinaga

    Armando Aguinaga

    student•
    hace 2 años

    var count = 0

    for i in 2..<101{

    for j in 1..<i+1{

    if i % j == 0 {

    count+=1

    }

    }

    if count == 2 {

    print("\(i) es primo")

    }

    count = 0

    }

    Jose Carlos Florez Vergara

    Jose Carlos Florez Vergara

    student•
    hace 2 años
    import UIKit typealias Entero = UInt8 var numPrime = [Entero]() for num1: Entero in 2...100{ var cont = 0 for num2: Entero in 2...num1{ if (num1 % num2 == 0){ cont += 1 } } if cont == 1{numPrime.append(num1)} } print(numPrime) ```**import** UIKit **typealias** Entero = UInt8 **var** numPrime = \[Entero]\() **for** num1: Entero **in** 2...100{ **var** cont = 0 **for** num2: Entero **in** 2...num1{ **if** (num1 % num2 == 0){ cont += 1 } } **if** cont == 1{numPrime.append(num1)} } print(numPrime)
    Jose Carlos Florez Vergara

    Jose Carlos Florez Vergara

    student•
    hace 2 años

    import UIKit

    typealias Entero = UInt8

    var numPrime = [Entero]()

    for num1: Entero in 2...100{

    var cont = 0

    for num2: Entero in 2...num1{

    if (num1 % num2 == 0){

    cont += 1

    }

    }

    if cont == 1{numPrime.append(num1)}

    }

    print(numPrime)

    Jhonathan Andres Mauricio la Torre

    Jhonathan Andres Mauricio la Torre

    student•
    hace 2 años

    Me tomo un buen rato pero valio la pena, Mira mami solito

    var primos :[Int] = []

    var state = true

    for i in 2...100{

    for j in 2..<i{

    if i % j == 0{

    state = false

    }

    }

    if state {

    primos.append(i)

    }else {

    state = true

    }

    }

    print(primos)

    Puni Marketing Group LLC

    Puni Marketing Group LLC

    student•
    hace 2 años
    var primeNumbers = [Int]() let finalNumber = 100 var n = 2 while n <= finalNumber { var isPrime = true var divider = 2 while divider * divider <= n { if n % divider == 0 { isPrime = false break } divider += 1 } if isPrime { print(n) primeNumbers.append(n) } n += 1 } primeNumbers // (25 elements) [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads