É 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