Tcl - Declaración de conmutador anidado

Es posible tener un switchcomo parte de la secuencia de instrucciones de un interruptor externo. Incluso si las constantes de caso del conmutador interno y externo contienen valores comunes, no surgirán conflictos.

Sintaxis

La sintaxis de un nested switch declaración es la siguiente:

switch switchingString {
   matchString1 {
      body1
      switch switchingString {
         matchString1 {
            body1
         }
         matchString2 {
            body2
         }
         ...
         matchStringn {
            bodyn
         }
      }
   }
   matchString2 {
      body2
   }
...
   matchStringn {
      bodyn
   }
}

Ejemplo

#!/usr/bin/tclsh

set a 100
set b 200

switch $a {
   100 {
      puts "This is part of outer switch"
      switch $b {
         200 {
            puts "This is part of inner switch!"
         }
      }
   }   
}
puts "Exact value of a is : $a"
puts "Exact value of a is : $b"

Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:

This is part of outer switch
This is part of inner switch!
Exact value of a is : 100
Exact value of a is : 200