Tcl - instrução de switch aninhada

É possível ter um switchcomo parte da sequência de instruções de um switch externo. Mesmo que as constantes case do switch interno e externo contenham valores comuns, nenhum conflito surgirá.

Sintaxe

A sintaxe para um nested switch declaração é a seguinte -

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

Exemplo

#!/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"

Quando o código acima é compilado e executado, ele produz o seguinte 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