Mat|r proporciona varias sentencias para el control de flujo. Estas incluyen bucles while para realizar una tarea varias veces; ‘if / if’ Else para ejecutar diferentes ramas de código basadas en ciertas condiciones; un bucle for-in que permite fácilmente iterar sobre arreglos; y una sentencia ‘try/catch’ que permite ejecutar código que está expuesto a posibles condiciones excepcionales y brinda la posibilidad de manejarlas.
Contenido
if / if else
Estas sentencias son usadas para ejecutar diferentes piezas de código basadas en ciertas condiciones, como por ejemplo si ocurre un error poder ejecutar una parte diferente de código o mostrar un mensaje. Para hacer esto, hacemos condicionales partes de nuestro código.
La sentencia if
simple tiene una condición, y sólo si esa condición se cumple, se ejecuta la parte de código dentro del bloque, y luego continua la ejecución normal del programa.
Integer count = 2
count = count - 2
if (count == 0) {
broker.ui.showAlert("Contador", "Tu contador es cero")
}
//Contador, Tu contador es cero
La sentencia if else
esta formada por una condición y dos bloques de código; sólo si esa condición se cumple, se ejecuta el código dentro del primer bloque; caso contrario, se ejecuta el código del segundo bloque, el bloque else
.
Integer count = 2
count = count - 1
if (count == 0) {
broker.ui.showAlert("Contador", "Tu contador es cero")
}else {
broker.ui.showAlert("Contador", "Tu contador es distinto de cero")
}
//Contador, Tu contador es distinto de cero
While
Un bucle while
ejecuta un conjunto de sentencias hasta que la condición pase a ser falsa. Estos tipos de bucles son usados cuando el número de iteraciones no es conocido antes de que comience la primer iteración.
Este tipo de bucle comienza evaluando una condición. Si la condición es verdadera, se repite el bloque de código hasta que la condición se convierte en falsa.
Integer count = 3
while (count > 0) {
broker.ui.showAlert("Contador", count.toString())
count = count - 1
}
//Contador, 3
//Contador, 2
//Contador, 1
Forin
Un bucle forin
es usado para iterar sobre una colección, como por ejemplo un arreglo.
Array<String> nombres = []
nombres.add("Jose")
nombres.add("Luis")
for nombre in nombres {
broker.ui.showAlert("Hola", nombre)
}
// Hola, Jose
// Hola, Luis
Try/Catch
Éstas sentencias son usadas como mecanismo de manejo de excepciones en Mat|r y permite al desarrollador lidiar con condiciones excepcionales y manejarlas.
Estas sentencias desacoplan la detección y el manejo de esas condiciones, y automatizan la propagación de excepciones desde el punto en que se detectaron al punto de manejo. Como resultado, el código será más limpio, fácil de escribir y mantener.
Con la sentencia try
se define un bloque de código que es un dominio de manejo de excepciones: código que puede potencialmente lanzar una excepción. A contnuación, dentro del catch(e)
se define un bloque de código para el manejo de excepciones lanzadas en el bloque try. El parámetro de catch es la excepción lanzada en el bloque try.
Array<Integer> edades = [] //array vacio
Integer edadPromedio = 0
try {
for edad in edades {
edadPromedio = edadPromedio + edad
}
edadPromedio = edadPromedio / edades.size()
} catch (e) {
broker.ui.showAlert(e.name(), e.reason())
}
//DivisionByZero, Has been a division by zero error.