¿QUÉ ES UNA ESTRUCTURA DE CONTROL?
Son estructuras que controlan la secuencia o flujo de ejecuciones de sentencias.
Hay 2 grandes categorías:
- Selección o Condicionales.
- Iteración.
TIPOS DE ESTRUCTURAS DE CONTROL
- SELECCIÓN O CONDICIONALES: Controlan si una sentencia o secuencia de sentencias se ejecutan, en función del cumplimiento o no de una condición o expresión lógica.
IF
IF-ELSE
IF / IF-ELSE
- 1 sola ejecución.
- Sólo si se cumple la expresión lógica en “if” se ejecuta el bloque.
- Si hay un “else”, este bloque se ejecuta cuando la expresión lógica en “if” no se cumple.
Ejemplo 1
Integer count = 2
count = count – 2 // 0
if (count == 0) {
broker.ui.showAlert(“Count”, “Count value is zero”)
}
Ejemplo 2
Integer count = 2
count = count – 1 // 1
if (count == 0) {
broker.ui.showAlert(“Count”, “Count value is zero”)
}else {
broker.ui.showAlert(“Count”, “Count value is different than zero”)
}
- ITERACIÓN: Son estructuras de control que repiten la ejecución de un grupo de instrucciones. mientras que la condición específica o expresión lógica se cumpla.
FOR-IN
WHILE
TRY-CATCH
FOR-IN
- Ejecuta un bloque de código tantas veces como se indique.
Ejemplo
Array<String> names = []
names.add(“John”)
names.add(“Freedy”)
for name in names {
broker.ui.showAlert(“Hi”, name)
}
// Hi, John
// Hi, Freedy
WHILE
- Ejecuta un bloque de código tantas veces como se cumpla la expresión lógica.
- Usualmente no se sabe de antemano el número de iteraciones a realizar.
Ejemplo
Integer count = 3
while (count > 0) {
broker.ui.showAlert(“Count Value”, count.toString())
count = count – 1
}
//Count Value, 3
//Count Value, 2
//Count Value, 1
TRY-CATCH
- “try” ejecuta un bloque de código que potencialmente puede lanzar una excepción.
- “catch (e)” ejecuta un bloque de código cuando ocurre una excepción en el bloque “try”.
- “e” es un tipo de dato Exception.
Ejemplo:
Array<Integer> ages = [] //empty array
Integer ageAverage = 0
try {
for age in ages {
ageAverage = ageAverage + age
}
ageAverage = ageAverage / ages.size()
} catch (e) {
broker.ui.showAlert(e.name(), e.reason())
}
//DivisionByZero, Has been a division by zero error.