Processamento condicional

Todo o processamento de um programa é baseado em testes condicionais, ou seja, se algo for verdadeiro então faça uma coisa, caso contrário siga adiante. Este teste é produzido por uma instrução IF .. THEN

No caso do Micro Bug não é preciso existir a declaração THEN, já que o sistema entende que a instrução IF implica em um procedimento alternativo. Resta saber quais procedimentos alternativos são possíveis. A rigor, todas as demais instruções podem ser usadas.

Estude o seguinte programa:

10 CLS
20 PRINT "Meu primeiro ";
30 LET vr=0
50 IF vr=5 GOTO 80
70 PRINT "programa."
75 STOP
80 PRINT "IF .. THEN."
85 STOP


Vamos entender passo a passo o processamento: vai ser impressa a frase "Meu primeiro " e em seguida um complemento para ela. Esse complemento vai depender da variável "vr", criada na linha 30.

Portanto, na linha 50 será feito o teste e a tomada de de decisão: se a variável "vr" for igual a 5, então (THEN) faça um desvio (GOTO) para a linha 80. Caso contrário execute a próxima linha.

Resumindo: se "vr" for igual a 5, a frase que veremos na tela é "Meu primeiro IF..THEN.". Se não for, veremos a frase "Meu primeiro programa.".

Mas, espere um pouco. A variável "vr" nunca será 5 pois ela sempre recebe o valor "0", na linha 30. Não vai adiantar nada acrescentarmos algum valor fixo a ela pois o resultado seria o mesmo, até o final dos tempos (ou até o equipamento queimar).

Vamos então adicionar à variável "vr" um valor aleatório entre 0 e 10.

40 LET vr=vr&10


O operador "&" faz isso pra gente, ou seja, após ser criada com o valor "0", a variável "vr" irá receber a adição de um valor que pode ser qualquer um, de 0 a 10. Dessa forma, em algum momento ela receberá o valor 5 e portando ocorrerá o desvio para a linha 80.

A linha 50, que testa a condição do desvio, pode receber os principais operadores de condição, a saber: "=", ">", "<", ">=", "<=" ou "<>".

Digite a listagem abaixo e a cada vez que ela for executada (F5) será possível ver não apenas o desvio acontecendo como também o valor que "vr" recebeu.

10 CLS
20 PRINT "Meu primeiro ";
30 LET vr=0
40 LET vr=vr&10
50 IF vr<>5 GOTO 80
70 PRINT "programa."
72 PRINT vr
75 STOP
80 PRINT "IF .. THEN."
82 PRINT vr
85 STOP


Experimente com os operadores de condição e também com processamento a ser feito após a condição ter sido testada como verdadeira (GOTO, GOSUB, LET, PRINT, etc).