PC SOFT

AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

¡Nueva funcionalidad de WINDEV Mobile 27!
  • Esta lección abarcará los siguientes temas
  • Presentación
  • Ejemplo práctico
  • Instrucción IF
  • Instrucción SWITCH
Lección 3.5. Instrucciones condicionales
Esta lección abarcará los siguientes temas
  • Instrucción IF.
  • Instrucción SWITCH.
Duración de la lección

Tiempo estimado: 20 min
Lección anteriorTabla de contenidoSiguiente lección
Presentación
WLanguage es una secuencia de instrucciones que manipulan datos.
Las instrucciones condicionales permiten comparar variables y/o valores entre sí con el fin de realizar diferentes procesos. Existen varias instrucciones condicionales:
  • IF... THEN... ELSE... END
  • SWITCH...

Ejemplo práctico

Para completar los ejercicios de esta lección, trabajaremos con el proyecto "WLanguage" que utilizamos en la lección anterior. El principio sigue siendo el mismo: el código de ejemplo se introducirá directamente en el evento "Inicialización" del proyecto.

  • Para ver los eventos WLanguage del proyecto:
    1. Haga clic derecho en la "P" que se encuentra junto a las pestañas de elementos abiertos. El menú contextual se abre.
    2. Seleccione "Código del elemento".
    3. El editor de código muestra los diferentes eventos asociados al proyecto.
Instrucción IF
Esta instrucción permite ejecutar una acción u otra según el resultado de una expresión. Si se cumple la expresión, se ejecuta un proceso; si no se cumple la expresión, se puede ejecutar otro proceso.
La instrucción IF se puede utilizar de la siguiente manera:
IF <Expression to evaluate> THEN
  Process to execute if the expression evaluates to true
ELSE
  Process to execute otherwise
END

  • Probaremos esta instrucción con un ejemplo simple de código WLanguage:
    1. Si es necesario, elimine el código WLanguage del evento "Inicialización" del proyecto y copie el siguiente código.
      Este código selecciona un número al azar y muestra un mensaje según el valor.
      RandomNumber is int
      // Resets the random number generator
      InitRandom()
      // Selects a number at random between 100 and 4000
      RandomNumber = Random(100, 4000)
      Trace("Random number value" + RandomNumber)
      // Check if this number is strictly greater than 2000
      IF RandomNumber > 2000 THEN
      Trace("Number greater than 2000")
      ELSE
      Trace("Number less than or equal to 2000")
      END
      En este código, la expresión a evaluar es "RandomNumber>2000".
    2. Probemos este código : haga clic en Probar proyecto en los botones de acceso rápido.
    3. Si es necesario, abra el panel "Traza del depurador" para ver el resultado: En la pestaña "Inicio", en el grupo "Entorno", despliegue "Paneles" y seleccione "Traza del depurador".
    4. El panel "Traza del depurador" mostrará el mensaje que corresponde a su caso (dado que el número es aleatorio, el mensaje puede cambiar con cada prueba.).
Observación: La instrucción IF también puede escribirse en una sola línea utilizando la instrucción "? ... ELSE" (aquí, la instrucción está en 2 líneas porque no cabe en la página):
<Expression to evaluate>? <Process if expression evaluates to true>
ELSE <Process otherwise>
Esta instrucción es una forma abreviada de IF ... THEN ... ELSE: ocupa menos espacio, pero puede que no sea tan fácil de entender.
En nuestro ejemplo, el código es el siguiente:
// Single-line conditional statement
Trace(RandomNumber > 2000? "Number greater than 2000" ELSE "Number less than or equal to 2000")


  • En una instrucción IF, también es posible acumular condiciones usando las palabras clave AND y OR. Aquí hay algunos ejemplos simples que puede probar de inmediato.
    • Condición compuesta con la palabra clave AND: Determina si se cumplen dos condiciones. Ambas condiciones se evalúan.
      // Compound condition (AND and OR keywords)
      Condition1 is boolean = False
      Condition2 is boolean = True
      // - AND keyword
      IF Condition1 AND Condition2 THEN
      Trace("Condition1 AND Condition2: <true>")
      ELSE
      Trace("Condition1 AND Condition2: <false>")
      END

      Cuando se ejecute la prueba del proyecto de nuevo, el panel "Traza del depurador" mostrará:
      Condition1 AND Condition2: <false>
    • Condición compuesta con la palabra clave OR: Prueba si se cumple alguna de las condiciones. Una vez más, se evalúan ambas condiciones.
      Condition1 is boolean = False
      Condition2 is boolean = True
       
      IF Condition1 OR Condition2 THEN
      Trace("Condition1 OR Condition2: <true>")
      ELSE
      Trace("Condition1 OR Condition2: <false>")
      END

      Cuando se ejecute la prueba del proyecto de nuevo, el panel "Traza del depurador" mostrará:
      Condition1 OR Condition2: <true>

      Nota

      La segunda condición se puede ignorar si la primera condición que se evalúa es falsa: simplemente utilice la palabra clave _AND_. Por ejemplo:
      Condition1 is boolean = False
      Condition2 is boolean = True
       
      IF Condition1 _AND_ Condition2 THEN
      Trace("Condition1 _AND_ Condition2: <true>")
      ELSE
      Trace("Condition1 _AND_ Condition2: <false>")
      END

      Cuando se ejecute la prueba del proyecto de nuevo, el panel "Traza del depurador" mostrará:
      Condition1 _AND_ Condition2: <false>
      Del mismo modo, al utilizar la palabra clave _OR_, si la primera parte de la expresión es verdadera, el resto de la expresión no se evalúa.
Para obtener más información, consulte Instrucción IF.
Instrucción SWITCH
Esta instrucción permite evaluar una expresión y ejecutar un proceso para cada valor posible de la expresión.
La instrucción SWITCH se puede utilizar de la siguiente manera:
SWITCH <Expression>
CASE Value 1:
Process 1
CASE Value 2:
Process 2
...
CASE Value N:
Process N

OTHER CASE
Process
END

  • Vamos a escribir un fragmento de código WLanguage para probar esta instrucción:
    1. Si es necesario, elimine el código WLanguage del evento "Inicialización" del proyecto y copie el siguiente código. Este código recupera la fecha actual y muestra un mensaje diferente dependiendo del valor obtenido. Un mensaje específico aparece para los días 1 y 15 del mes. En los demás casos, se muestra la fecha del día correspondiente.
      // By default, the Date variable is initialized with the current date
      CurrentDate is Date
       
      // Checks the day of the date
      SWITCH CurrentDate.Day
      // 1st day of the month
      CASE 1: Trace("Today is the first day of the month.")
      // 15th day of the month
      CASE 15: Trace("Today is the 15th day of the month.")
      // For all other days, display the date
      OTHER CASE: Trace("Today is: " + CurrentDate.ToString())
      END

      Nota

      WLanguage incluye varias funciones y propiedades. Las funciones pueden recibir parámetros y devolver resultados. Las propiedades se aplican directamente a los controles o variables utilizando la siguiente sintaxis:
      <Name of control or variable>.<Property name>
      En nuestro ejemplo, la propiedad Day se utiliza en la variable CurrentDate para obtener el día de la fecha.
    2. Probemos este código : haga clic en Probar proyecto en los botones de acceso rápido.
    3. El panel "Traza del depurador" mostrará el mensaje que corresponde a su caso (el mensaje puede variar dependiendo de la fecha). Por ejemplo, si la prueba se realiza el 28 de noviembre de 2020, aparecerá el siguiente mensaje:
      Today is: 28/11/2021
Observaciones:
  • Si se ejecuta la línea de código "CASE 1:...", las demás líneas de código que corresponden a los posibles valores no se ejecutan.
  • Se pueden agrupar varios valores en el mismo caso. Los diferentes valores están separados por una coma. Por ejemplo, para probar el mes de una fecha, podemos escribir el siguiente código WLanguage:
    SWITCH CurrentDate.Month
    // Months 1, 2 and 3
    CASE 1, 2, 3: Trace("We are in the first quarter of the year.")
    // Months 4 to 6
    CASE 4 <= * <= 6: Trace("We are in the second quarter of the year.")
    // Months after the sixth month
    CASE > 6: Trace ("We are in the second half of the year.")
    END

    Si se ejecuta de nuevo la prueba del proyecto el 28 de noviembre de 2021, el panel "Traza del depurador" mostrará el siguiente mensaje:
    Today is: 28/11/2021
    We are in the second half of the year.
  • Se pueden ejecutar varias líneas de código durante el proceso que corresponde a un valor de la expresión. En este caso, se debe utilizar la siguiente sintaxis:
    SWITCH <Expression>
    CASE Value 1:
    Process 1 - Line of code 1
    Process 1 - Line of code 2
    CASE Value N:
    Process N - Line of code 1
    Process N - Line of code 2
    OTHER CASE
    Process
    END
Para obtener más información, consulte Instrucción SWITCH.
Lección anteriorTabla de contenidoSiguiente lección
Versión mínima requerida
  • Versión 27
Comentarios
Haga clic en [Agregar] para publicar un comentario