GoSub...Return
Instrução tradicional das linguagens Basic,
empregada para causar uma quebra no fluxo linear de execução do código de um
procedimento para uma sub-rotina dentro do procedimento, utilizando esta
sintaxe:
GoSub LinhaOuRótulo
...
LinhaOuRótulo
...
Return
Onde,
- LinhaOuRótulo: pode ser qualquer número de linha dentro do código, ou qualquer rótulo definido com o emprego de um nome seguido por “-“.
As seguintes considerações são válidas para a instrução
GoSub...Return:
- GoSub e Return existem apenas por compatibilidade para trás com outras versões do Basic, pois provocam a quebra na seqüência lógica e estruturada de execução do código de um procedimento, devendo ser evitado o seu emprego. Em seu lugar, empregue uma instrução Call que faça uma chamada a um outro procedimento;
- GoSub e Return podem ser empregados em qualquer ponto do procedimento. Tão logo uma instrução GoSub seja encontrada, o fluxo de código será desviado para a linha ou rótulo determinado. Após esta linha ou rótulo, você poderá empregar uma instrução Return para retornar a execução do código para a linha subseqüente àquela na qual foi colocada a instrução GoSub;
- Você não pode empregar GoSub para executar outros procedimentos. Empregue esta instrução apenas para desviar o fluxo de código dentro de um procedimento qualquer;
- Para impedir que o fluxo normal do código entre no fluxo de código de uma sub-rotina (como uma sub-rotina de manipulação de erros em tempo de execução), empregue uma instrução Exit Sub antes do rótulo ou linha que define o início da sub-rotina.
Exemplo: O exemplo a seguir demonstra como empregar a
instrução GoSub para retornar a raiz quadrada de números capturados por uma
instrução InputBox(). Note que quando o valor fornecido não for um número ou
for um número negativo, o procedimento é terminado.
Public Sub CalculaRaizQuadrada()
Dim strValor As
Srting
TentaDeNovo:
StrValor = InputBox(“Forneça o número cuja raiz quadrada
você deseja”, “Número?”)
If Not
IsNumeric(strValor) Or Val(strValor) < 0 Then
Exit Sub
Else
GoSub Calcula
GoSub TentaDeNovo
End If
Exit Sub
Calcula:
MsgBox “A raiz
quadrada de “ & strValor & “ é “ & Sqr(Val(strValor))
Return
End Sub
Até a Próxima!!
Nenhum comentário:
Postar um comentário