Tcl - Decisiones

Las estructuras de toma de decisiones requieren que el programador especifique una o más condiciones para ser evaluadas o probadas por el programa, junto con una declaración o declaraciones que se ejecutarán si se determina que la condición es verdadera y, opcionalmente, otras declaraciones que se ejecutarán si la condición se determina que es falso.

A continuación se muestra la forma general de una estructura de toma de decisiones típica que se encuentra en la mayoría de los lenguajes de programación:

El lenguaje Tcl usa el comando expr internamente y, por lo tanto, no es necesario que usemos la declaración expr explícitamente.

El lenguaje Tcl proporciona los siguientes tipos de declaraciones para la toma de decisiones:

No Señor. Declaración y descripción
1 si declaración

Una declaración 'if' consiste en una expresión booleana seguida de una o más declaraciones.

2 declaración if ... else

Una instrucción 'if' puede ir seguida de una instrucción 'else' opcional, que se ejecuta cuando la expresión booleana es falsa.

3 declaraciones if anidadas

Puede usar una instrucción 'if' o 'else if' dentro de otra instrucción 'if' o 'else if'.

4 declaración de cambio

UN switch La declaración permite probar la igualdad de una variable con una lista de valores.

5 declaraciones de cambio anidadas

Puedes usar uno switch declaración dentro de otra switch declaración (es).

Los ? : Operador

Nosotros hemos cubierto conditional operator ? : en el capítulo anterior, que se puede utilizar para reemplazar if...elsedeclaraciones. Tiene la siguiente forma general:

Exp1 ? Exp2 : Exp3;

Donde Exp1, Exp2 y Exp3 son expresiones. Observe el uso y la ubicación del colon.

El valor de un '? expresión 'se determina así: Se evalúa Exp1. Si es cierto, entonces Exp2 se evalúa y se convierte en el valor de todo '? expresión.' Si Exp1 es falso, entonces se evalúa Exp3 y su valor se convierte en el valor de la expresión. A continuación se muestra un ejemplo.

#!/usr/bin/tclsh

set a 10;
set b [expr $a == 1 ? 20: 30]
puts "Value of b is $b\n"
set b [expr $a == 10 ? 20: 30]
puts "Value of b is $b\n"

Cuando compila y ejecuta el programa anterior, produce el siguiente resultado:

Value of b is 30
Value of b is 20