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 min
  • 2
    Operaciones de asignación y aritmeticas

    Operaciones de asignación y aritmeticas

    13:14 min
  • 3
    Comparaciones

    Comparaciones

    09:19 min
  • 4
    Operaciones Ternarias

    Operaciones Ternarias

    07:35 min
  • 5
    Operador Nil Coalescing

    Operador Nil Coalescing

    06:53 min
  • 6
    Rangos

    Rangos

    10:13 min
  • 7
    Operadores lógicos

    Operadores lógicos

    11:07 min

Manipulación de Strings

  • 8
    Strings

    Strings

    12:26 min
  • 9
    Inicialización y mutabilidad

    Inicialización y mutabilidad

    09:35 min
  • 10
    Characters

    Characters

    11:28 min
  • 11
    Índices de Strings

    Índices de Strings

    12:21 min
  • 12
    Substrings

    Substrings

    05:08 min
  • 13
    Prefijos y Sufijos

    Prefijos y Sufijos

    06:25 min
  • 14
    Representaciones Unicode

    Representaciones Unicode

    08:57 min

Estructuras de datos

  • 15
    Arrays

    Arrays

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

    Acceder y modificar elementos de un Array

    08:24 min
  • 17
    Iterando en Arrays

    Iterando en Arrays

    04:17 min
  • 18
    Conjuntos

    Conjuntos

    11:21 min
  • 19
    Iteraciones y operaciones sobre conjuntos

    Iteraciones y operaciones sobre conjuntos

    11:01 min
  • 20
    Diccionarios

    Diccionarios

    12:55 min
  • 21
    Iteración en diccionarios

    Iteración en diccionarios

    07:12 min

Sentencias de Control

  • 22
    Ciclo for-in

    Ciclo for-in

    12:29 min
  • 23
    Ciclo while

    Ciclo while

    Viendo ahora
  • 24
    Uso de if

    Uso de if

    09:24 min
  • 25
    Uso de Switch

    Uso de Switch

    07:42 min
  • 26
    Switch usando rangos - Interval matching

    Switch usando rangos - Interval matching

    06:24 min
  • 27
    Switch usando tuplas

    Switch usando tuplas

    09:31 min
  • 28
    Switch con casos compuestos

    Switch con casos compuestos

    07:51 min

Sentencias de transferencia de control

  • 29
    Continue y break

    Continue y break

    08:22 min
  • 30
    Fallthrough

    Fallthrough

    06:02 min
  • 31
    Uso de return y guard

    Uso de return y guard

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

    Available en API: Manejo de versiones

    04:33 min

Cierre del curso

  • 33
    Cierre del curso y próximos pasos

    Cierre del curso y próximos pasos

    01:33 min
  • Tomar el examen del curso
    • 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