Saltar al contenido principal
MedCalc
Enviar una copia en PDF de esta página a:
(Su dirección de correo electrónico no se añadirá a una lista de distribución)
working

Scripts: control de flujo y construcciones de bucle

If

La instrucción condicional If ejecuta un bloque de código si una condición es verdadera.

if (condición)
{
      bloqueDeInstrucciones;
}

La condición se evalúa y, si resulta verdadera, entonces se ejecuta el bloque de instrucciones.

If...Else

La instrucción If puede contener una cláusula else opcional.

if...else ejecuta un bloque de código si una condición es verdadera y otro bloque si la condición es falsa.

if (condición) {
      bloqueDeInstrucciones1;
}  else  {
      bloqueDeInstrucciones2;
}

La condición se evalúa y, si es verdadera, se ejecuta bloqueDeInstrucciones1. Si no, se ejecuta bloqueDeInstrucciones2.

While

El bucle while ejecuta un bloque de código mientras una condición especificada sea verdadera.

while (condición) {
      bloqueDeInstrucciones;
}

Mientras la evaluación de la condición resulte verdadera, se ejecutará el bloqueDeInstrucciones.

Do-while

El bucle do...while siempre ejecuta el bloque de código al menos una vez. Luego verifica la condición y repite el bucle mientras la condición especificada sea verdadera.

do {
      bloqueDeInstrucciones;
}  while (condición);

El bloqueDeInstrucciones se ejecuta mientras la condición evaluada resulte verdadera.

Esto significa que el bloque se ejecuta al menos una vez.

For

El bucle For recorre un bloque de código un número específico de veces. Se usa cuando se sabe de antemano cuántas veces debe ejecutarse el script..

for (inicialización; condición; incremento) {
      bloqueDeInstrucciones;
}

El código de inicialización se ejecuta una vez antes de empezar el bucle.

La condición define si se ejecuta el bloque de instrucciones. Si es falsa, el bucle termina.

El incremento se ejecuta cada vez después de ejecutar el bloque.

Cuando sabes exactamente cuántas veces deseas repetir un bloque de código, utiliza el bucle For en lugar de un while.

El siguiente código imprime los números del 1 al 5:

for (i=1; i<6; i++) {
	 print  i;
	 println ;
}

ForEach

El bucle ForEach se ejecuta para cada elemento en una enumeración..

foreach (enumeración [sort] as nombreVariable) {
      bloqueDeInstrucciones;
}

En cada iteración, el elemento de la enumeración se asigna a la variable nombreVariable.

Cuando se especifica el argumento opcional sort, los valores se enumeran en orden ascendente alfabético o numérico.

El bucle ForEach tiene 5 variantes:

  • ForEach (Variable as v): enumera todas las variables (y variables derivadas) definidas en la hoja de cálculo
  • ForEach (Filtrer as v): enumera todos los filtros
  • ForEach (Category(var) as v): enumera todas las categorías distintas de una variable var definida en la hoja de cálculo.
  • ForEach (Value(var) as v): enumera todos los valores de una variable var definida en la hoja de cálculo
  • ForEach (Row as v): enumera todas las filas de la hoja de cálculo
  • ForEach (Column as v): enumera todas las columnas de la hoja de cálculo

Por ejemplo:

<data>
'Tratamiento'  'BMI'
A              23.6
B              28.2
B              24.1
A              22.2
</data>
foreach (category(Tratamiento) as tv) {
     print tv; println;
}

Resultado:

A
B

Loop

El bucle infinito loop ejecuta un bloque de código repetidamente. Nunca termina por sí solo.

loop  {
     instrucciones;
     if (condición) { break; }
     másInstrucciones;
}

Todas las instrucciones dentro del bloque se ejecutan repetidamente. El bucle solo puede interrumpirse con la instrucción break (o halt).

Break

Puedes salir de un bucle (while, do-while, for, , loop) uusando la instrucción break.

En el siguiente ejemplo, se generan números aleatorios hasta que el número sea 5:

loop {
     a=random(10);
     if (a=5) { break; }
     print a; println ;
}

Continue

La instrucción continue interrumpe una iteración en un bucle, generalmente cuando ocurre una condición específica, y continúa con la siguiente iteración del bucle.

El siguiente ejemplo lista el recíproco de los números del -2 al 2, pero omite el valor 0:

for (i=-2; i<3; i++) {
	 if (i=0) { continue; }
	 print 1/i;  println;
}

Halt

La instrucción halt detiene inmediatamente la ejecución del script.

Véase también