1 Introducción

En programación, los ciclos permiten repetir instrucciones varias veces. En R, dos de las estructuras repetitivas más importantes son:

  • for()
  • while()

Además, existen instrucciones que permiten modificar el comportamiento de un ciclo:

  • break: termina completamente el ciclo.
  • next: omite la iteración actual y continúa con la siguiente.

En este documento se presentan ejemplos básicos para comprender su funcionamiento en RStudio.

2 1. Ciclo for()

El ciclo for() se utiliza principalmente cuando conocemos los valores o elementos que queremos recorrer.

2.1 1.1 Sintaxis básica

for(variable in secuencia){
  instrucciones
}

Por ejemplo:

for(i in 1:5){
  print(i)
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5

2.2 1.2 Ejemplo 1. Mostrar números del 1 al 5

for(i in 1:5){
  print(i)
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5

2.3 1.3 Ejemplo 2. Mostrar números del 5 al 10

for(i in 5:10){
  print(i)
}
## [1] 5
## [1] 6
## [1] 7
## [1] 8
## [1] 9
## [1] 10

2.4 1.4 Ejemplo 3. Calcular el cuadrado de varios números

for(i in 1:5){

  cuadrado <- i^2

  print(cuadrado)
}
## [1] 1
## [1] 4
## [1] 9
## [1] 16
## [1] 25

2.5 1.5 Ejemplo 4. Recorrer un vector de nombres

nombres <- c("Ana", "Juan", "Pedro", "Laura")

for(nombre in nombres){
  print(nombre)
}
## [1] "Ana"
## [1] "Juan"
## [1] "Pedro"
## [1] "Laura"

2.6 1.6 Ejemplo 5. Sumar los números del 1 al 5

suma <- 0

for(i in 1:5){

  suma <- suma + i

}

print(suma)
## [1] 15

En este ejemplo, la variable suma funciona como un acumulador.

3 2. Ciclo while()

El ciclo while() ejecuta instrucciones mientras una condición sea verdadera.

3.1 2.1 Sintaxis básica

while(condicion){
  instrucciones
}

En un while() normalmente debemos controlar tres elementos:

  1. Inicialización.
  2. Condición.
  3. Actualización de la variable.

3.2 2.2 Ejemplo 1. Mostrar números del 1 al 5

i <- 1

while(i <= 5){

  print(i)

  i <- i + 1
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5

3.3 2.3 Ejemplo 2. Mostrar números del 5 al 10

i <- 5

while(i <= 10){

  print(i)

  i <- i + 1
}
## [1] 5
## [1] 6
## [1] 7
## [1] 8
## [1] 9
## [1] 10

3.4 2.4 Ejemplo 3. Cuenta regresiva

i <- 5

while(i >= 1){

  print(i)

  i <- i - 1
}
## [1] 5
## [1] 4
## [1] 3
## [1] 2
## [1] 1

3.5 2.5 Ejemplo 4. Mostrar números pares

i <- 2

while(i <= 10){

  print(i)

  i <- i + 2
}
## [1] 2
## [1] 4
## [1] 6
## [1] 8
## [1] 10

3.6 2.6 Ejemplo 5. Duplicar un número hasta superar 100

numero <- 2

while(numero <= 100){

  print(numero)

  numero <- numero * 2
}
## [1] 2
## [1] 4
## [1] 8
## [1] 16
## [1] 32
## [1] 64

4 3. Instrucción break

La instrucción break permite terminar completamente un ciclo antes de que finalice normalmente.

4.1 3.1 Ejemplo 1. Detenerse al llegar a 5

for(i in 1:10){

  if(i == 5){
    break
  }

  print(i)
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4

4.2 3.2 Ejemplo 2. Detenerse al encontrar un número

numeros <- c(3, 7, 10, 15, 20)

for(numero in numeros){

  if(numero == 15){
    break
  }

  print(numero)
}
## [1] 3
## [1] 7
## [1] 10

4.3 3.3 Ejemplo 3. Utilizar break dentro de while()

i <- 1

while(i <= 10){

  if(i == 6){
    break
  }

  print(i)

  i <- i + 1
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5

4.4 3.4 Ejemplo 4. Detenerse cuando un valor supere 20

for(i in 1:30){

  if(i > 20){
    break
  }

  print(i)
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
## [1] 6
## [1] 7
## [1] 8
## [1] 9
## [1] 10
## [1] 11
## [1] 12
## [1] 13
## [1] 14
## [1] 15
## [1] 16
## [1] 17
## [1] 18
## [1] 19
## [1] 20

4.5 3.5 Ejemplo 5. Detener una multiplicación

numero <- 2

while(numero < 100){

  numero <- numero * 2

  print(numero)

  if(numero >= 20){
    break
  }
}
## [1] 4
## [1] 8
## [1] 16
## [1] 32

5 4. Instrucción next

La instrucción next permite omitir la iteración actual y continuar con la siguiente.

5.1 4.1 Ejemplo 1. Omitir el número 5

for(i in 1:10){

  if(i == 5){
    next
  }

  print(i)
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 6
## [1] 7
## [1] 8
## [1] 9
## [1] 10

5.2 4.2 Ejemplo 2. Omitir el número 3

for(i in 1:5){

  if(i == 3){
    next
  }

  print(i)
}
## [1] 1
## [1] 2
## [1] 4
## [1] 5

5.3 4.3 Ejemplo 3. Mostrar solamente números impares

for(i in 1:10){

  if(i %% 2 == 0){
    next
  }

  print(i)
}
## [1] 1
## [1] 3
## [1] 5
## [1] 7
## [1] 9

El operador %% calcula el residuo de una división.

Por ejemplo:

4 %% 2
## [1] 0
5 %% 2
## [1] 1

Un número es par cuando:

numero %% 2 == 0

5.4 4.4 Ejemplo 4. Omitir una palabra

frutas <- c("Manzana", "Pera", "Mango", "Uva")

for(fruta in frutas){

  if(fruta == "Mango"){
    next
  }

  print(fruta)
}
## [1] "Manzana"
## [1] "Pera"
## [1] "Uva"

5.5 4.5 Ejemplo 5. Omitir valores menores que 3

numeros <- c(1, 2, 3, 4, 5)

for(numero in numeros){

  if(numero < 3){
    next
  }

  print(numero)
}
## [1] 3
## [1] 4
## [1] 5

6 5. Diferencia entre break y next

La diferencia principal es:

  • break termina completamente el ciclo.
  • next solamente omite una iteración.

6.1 5.1 Ejemplo con break

for(i in 1:5){

  if(i == 3){
    break
  }

  print(i)
}
## [1] 1
## [1] 2

El resultado será:

1
2

Cuando i toma el valor 3, el ciclo termina.

6.2 5.2 Ejemplo con next

for(i in 1:5){

  if(i == 3){
    next
  }

  print(i)
}
## [1] 1
## [1] 2
## [1] 4
## [1] 5

El resultado será:

1
2
4
5

Cuando i toma el valor 3, solamente se omite esa iteración.

7 6. Comparación general

Estructura Función principal
for() Repetir instrucciones recorriendo una secuencia
while() Repetir instrucciones mientras una condición sea verdadera
break Terminar completamente un ciclo
next Omitir una iteración y continuar

8 7. Ejemplo integrador básico

Supongamos que queremos recorrer los números del 1 al 10, omitir el número 4 y terminar cuando lleguemos al número 8.

for(i in 1:10){

  if(i == 4){
    next
  }

  if(i == 8){
    break
  }

  print(i)
}
## [1] 1
## [1] 2
## [1] 3
## [1] 5
## [1] 6
## [1] 7

El resultado será:

1
2
3
5
6
7

9 8. Ejercicios propuestos

9.1 Ejercicio 1

Utilice un ciclo for() para mostrar los números del 1 al 20.

9.2 Ejercicio 2

Utilice un ciclo for() para mostrar los números pares entre 2 y 20.

9.3 Ejercicio 3

Utilice un ciclo while() para mostrar los números del 1 al 10.

9.4 Ejercicio 4

Utilice un ciclo while() para realizar una cuenta regresiva desde 10 hasta 1.

9.5 Ejercicio 5

Utilice un ciclo for() y break para recorrer los números del 1 al 20 y detener el ciclo cuando llegue al número 10.

9.6 Ejercicio 6

Utilice un ciclo for() y next para mostrar los números del 1 al 10, pero omitiendo el número 5.

9.7 Ejercicio 7

Cree el siguiente vector:

notas <- c(4.5, 3.8, 2.7, 4.0, 1.9)

Utilice un ciclo for() para mostrar cada una de las notas.

9.8 Ejercicio 8

Utilice un ciclo for() para calcular la suma de los números del 1 al 10.

10 Conclusiones

Los ciclos son estructuras fundamentales en programación.

El ciclo for() es apropiado cuando conocemos los elementos que deseamos recorrer.

El ciclo while() es útil cuando la repetición depende de una condición.

Las instrucciones break y next permiten controlar la ejecución de los ciclos:

  • break finaliza el ciclo.
  • next salta una iteración.

Comprender estas estructuras permite avanzar posteriormente hacia ciclos con condicionales, vectores, matrices, simulaciones y análisis de datos en R.