Dentro de uma estrutura, pode existir outra estrutura. Por exemplo, se quiser lidar com as entradas vazias no programa jose.vbs, pode fazer com que o programa as detecte e lhes reaja. Por exemplo:
' Programa jose2.vbs 21:36 25-04-2008
' aceita um nome e afixa-o
' excepto se for "José"
' Se nada for introduzido dá uma mensagem de erro
' exemplo de construções if.. then.. else "nested"
' Criamos uma variável
dim Nome
' Pedimos o valor e atribuimo-lo à variável
Nome= inputbox ("Como se chama? ")
' Se algo tiver sido introduzido, processamos...
if Nome<>"" then
' Se o nome for "José", negar; se não, afixar.
if Nome = "José" then
' Teste verdadeiro: Negar o nome
msgbox Nome & " não pode ser."
else
' Teste falso: Afixar o nome
msgbox "Viva, " & Nome & ", como está?"
end if ' Fim do if Nome=José
' Se nada tiver sido introduzido,
' damos uma mensagem de erro
else msgbox "Ooops... tem" & _
" de introduzir alguma coisa."
end if ' Fim do If Nome=""
' FIM DO PROGRAMA
O segmento de código que afixa em função de ser José ou não está incluído dentro de um if..then..else que permite que o primeiro seja executado se a entrada não for nula, e afixa uma mensagem de erro se for nula.
Estas estruturas encaixadas umas nas outras, como bonecas russas, dizem-se imbricadas (nested).
Pode ter notado que a linha
else msgbox "Ooops...
foi partida em duas, porque saía da caixa colorida neste documento (e eu não gostei disso). Para tal separou-se primeiro a cadeia alfanumérica em duas, usando as aspas e o carácter de concatenação; e indicou-se a continuação da linha, o que se faz com o carácter "_".
A instrução, se estivesse ainda numa só linha, ficava como
else msgbox "Ooops... tem" & " de introduzir alguma coisa."
mas foi separada em duas linhas pelo _.
Modifique o seu programa anterior, que comparava números com 100, por forma a que a uma entrada nula corresponda uma entrada de zero (veja bem que nulo e zero são coisas diferentes).
Início: 25/4/2008
Última modificação: 18:43 06-05-2008