Utilizar If, Lbl e Goto para controlar o fluxo do programa

O comando If e várias estruturas If...EndIf permitem executar uma instrução ou o um bloco de instruções condicionalmente, ou seja, baseado no resultado de um teste (como, por exemplo, x>5). Os comandos Lbl (etiqueta) e Goto permitem ramificar-se ou saltar de um local para outro numa função ou num programa.

O comando If e as várias estruturas If...EndIf residem no menu Controlo do Editor de programas.

Quando inserir uma estrutura, como, por exemplo, If...Then...EndIf, um modelo é inserido no local do cursor. O cursor é posicionado de forma a que possa introduzir um teste condicional.

Comando If

Para executar um comando individual quando um teste condicional é verdadeiro, utilize a forma geral:

À

Executado apenas se x>5; caso contrário, ignorado.

Á

Mostra sempre o valor de x.

Neste exemplo, tem de guardar um valor para x antes de executar o comando If.

Estruturas If...Then...EndIf

Para executar um grupo de comandos se um teste condicional for verdadeiro, utilize a estrutura:

À

Executado apenas se x>5.

Á

Mostra o valor de:
  2x se x>5
  x se x{5

Nota: EndIf marca o fim do bloco Then que é executado se a condição for verdadeira.

Estruturas If...Then...Else... EndIf

Para executar um grupo de comandos se um teste condicional for verdadeiro e um grupo diferente se a condição for falsa, utilize esta estrutura:

À

Executado apenas se x>5.

Á

Executado apenas se x{5.

Â

Mostra o valor de:
2x se x>5
5x se x{5

Estruturas If...Then...ElseIf... EndIf

Uma forma mais complexa do comando If permite testar várias condições. Suponha que quer um programa para testar um argumento fornecido pelo utilizador que significa uma de quatro opções.

Para testar cada opção (If Escolha=1, If Escolha=2, etc), utilize a estrutura If...Then...ElseIf...EndIf.

Comandos Lbl e Goto

Pode também controlar o fluxo com os comandos Lbl (etiqueta) e Goto. Estes comandos residem no menu Transferências do Editor de programas.

Utilize o comando Lbl para etiquetar (atribuir um nome a) um local específico na função ou no programa.

Lbl NomeDaEtiqueta

nome a atribuir a esta localização (utilize a mesma convenção de renomeação como o nome de uma variável)

Pode utilizar o comando Goto em qualquer ponto da função ou do programa para se ramificar para o local que corresponde à etiqueta especificada.

Goto NomeDaEtiqueta

especifica qual o comando Lbl a ramificar

Como um comando Goto é incondicional (ramifica-se sempre para a etiqueta especificada), é utilizado frequentemente com um comando If para que possa especificar um teste condicional. Por exemplo:

À

If x>5, ramifica-se directamente para a etiqueta GT5.

Á

Para este exemplo, o programa tem de incluir comandos (como, por exemplo, Stop) que impede a Lbl GT5 de ser executada se x{5.