Control de flujo

César Procopio

Marzo 4, 2020

ayuda

....fuera de programa

https://www.datamentor.io/r-programming/if-else-statement/

If, else if, else


if (condición) {

bloque de código

}

goles <- 2

if (goles < 3) {
print("en el partido hubo menos de 3")
  }
## [1] "en el partido hubo menos de 3"



if ( condición1) {

bloque_de_código_1

} else if ( condición2) {

bloque_de_código_2

} else if ( condición3) {

bloque_de_código_3

} else {

bloque_de_código_4

}

goles <- 2

if (goles < 3) 
{print("en el partido hubo menos de 3")} else if (goles == 3) 
{print("en el partido hubo 3 goles")} else
{print("en el partido hubo más de 3 goles")}
## [1] "en el partido hubo menos de 3"

For


for (valor in secuencia)

{

Bloque de código

}

contar <- 0
for (i in 1:5){
  
  p <- i*3
  print(p)
  contar <- contar + p
  
}
## [1] 3
## [1] 6
## [1] 9
## [1] 12
## [1] 15
print(contar)
## [1] 45



Interrupción del bloque mediante la sentecia break

if (condición) break

for (i in 1:5){
  
  p <- i*3
  if (p == 12) break  #interrumpe el bucle
  print(p)

}
## [1] 3
## [1] 6
## [1] 9



Saltear un bloque mediante la sentecia next

if (condición) next

for (i in 1:5){
  
  p <- i*3
  if (p == 9) next     # pasa al siguiente elemento
  if (p == 3)  
  print(p)

}
## [1] 3

While


while (condición)

{

Bloque de código

}

i<-0
while (i < 10){
  
  p <- i*3
  print(p)
  i <- i + 1
}
## [1] 0
## [1] 3
## [1] 6
## [1] 9
## [1] 12
## [1] 15
## [1] 18
## [1] 21
## [1] 24
## [1] 27

Repeat


repeat {

Bloque de código

condición de salida

}

x <- 1
repeat {
  print(x)
  x = x+1
  if (x == 6){
    break
  }
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5

Funciones


nombre_funcion (argumentos) {

Bloque de código

}



Ejemplo de una función

potencia <- function(x, y) {
# function to print x raised to the power y
result <- x^y
print(result)
print(paste(x,"elevado a la y", y, "es", result))
}



¿Como invocar a una función?

potencia(x = 3, y = 4)
## [1] 81
## [1] "3 elevado a la y 4 es 81"



Argumentos por defecto

potencia <- function(x = 3, y = 4) {
# function to print x raised to the power y
result <- x^y
print(result)
print(paste(x,"elevado a la y", y, "es", result))
}



¿Como invocar a una función con argumentos por defecto?

potencia()
## [1] 81
## [1] "3 elevado a la y 4 es 81"



Retornar valores de una función

potencia <- function(x = 3, y = 4) {
# function to print x raised to the power y
resultado <- x^y
print(resultado)
print(paste(x,"elevado a la y", y, "es", resultado))
return(resultado)
}



Múltiples retornos

potencia <- function(x = 3, y = 4) {
resultado <- x^y
return(list(resultado = resultado, x = x, y = y))
}

tareas