Condições
Autor: J. Arruda | Publicado: 2011-03-23T11:00:00-03:00


Este artigo promete ser grande. Peço paciência, porque este assunto é realmente um dos de maior importância em computação e programação.
Ao falar em condições, duas palavras aparecem bem claramente na nossa cabeça. Se&nbsp;eu fizer pudim, então teremos sobremesa. Como na informática ainda o idioma dominante é o inglês, traduzimos para IF. O comando IF é o único com bloco de códigos que não pode ser substituído por nenhum outro, ou seja, não há formas alternativas. A condição, em programação é essencial para o percurso de um programa, por isso, quem sabe programar condicionalmente, já sabe fazer muitas coisas.
A condição trabalha com valores booleanos, ou seja, apenas verdadeiro e falso. Podemos trabalhar de duas maneiras com a condição. Com sentenças lógicas ou variáveis booleanas. Primeiramente, vamos à estrutura:
if(a &gt; b){
   a = a - b;
}
Bem simples. SE tal condição (neste caso, a é maior que b, que são variáveis), então (representado pelo abre-chaves) execute um comando (neste caso o comando fala que o valor de a passa a ser igual a ele mesmo menos o valor de b), e fecha-chaves. Parametrizando, temos:
if(&lt;condição&gt;){
   &lt;comandos&gt;;
}O comando if é essencial para reconhecer com qual usuário o programador está lidando e qual valor este usuário fornece. Não podemos sempre contar com o mesmo valor, nem que o usuário digite apenas o valor que queremos, no tipo que queremos. Por exemplo (e o que acontece muito) quando pedimos para o usuário digitar um número e ele coloca letras no meio. Temos que fazer uma verificação, para ver se aceitamos aquele valor ou então pedimos para o usuário digitar de novo. Este ou então, em programação, é representado, em TODAS as linguagens, pelo comando else. Nas linguagens com blocos de código definidos por chaves, o else vai logo após o fechamento das chaves de um comando if:
if(a &gt; b){
   a = a - b;
}
else{
   a = a + b;
}Em BASIC, o Else entra no meio do bloco de códigos If:
If a &gt; b Then
   a = a - b
Else
   a = a + b
End IfMais uma semelhança do BASIC com a linguagem natural: As chaves são substituídas por Then (então) e End If (Fim Se). Como já disse, BASIC é uma linguagem que foi feita para fins didáticos apenas. Muitos costumam confundir VB (ou VB.NET) com BASIC, mas a linguagem de programação é realmente BASIC. VB é apenas o ambiente de desenvolvimento de propriedade da Microsoft&nbsp;baseado na linguagem BASIC.
Pode-se acrescentar outros ifs dentro de um if, e dentro do else também. Essa é uma característica muito útil para quem quer analisar mais de uma condição, uma de cada vez e reportar os erros sobre cada condição falsa. Lembrando-se de que o IF só prossegue a executar o código que está dentro dele se a condição expressa for verdadeira, podemos utilizar de alguns operadores relacionais entre as variáveis e valores:


NomeSímbolo em C, JAVA, C#...Símbolo em BASIC
Igual a===
Maior que&gt;&gt;
Menor que&lt;&lt;
Maior ou igual a&gt;=&gt;=
Menor ou igual a&lt;=&lt;=
Diferente de!=&lt;&gt;

Além dos operadores relacionais, que operam entre variáveis e constantes, podemos também usar operadores lógicos&nbsp;entre sentenças, os mesmos que usamos na álgebra de Boole, mas com uma diferença de notação:


NomeSímbolo em C, JAVA, C#...Símbolo em BASIC
Não!Not
E&amp;&amp;And
OU||Or

Percebam mais uma similaridade de BASIC com a linguagem natural inglesa. Também percebam que o símbolo de Não está presente no símbolo de Diferente de, significando que uma variável NÃO é IGUAL à outra (ou seja, diferente). Com estes símbolos, podemos formar a seguinte sentença lógica:
if((a != b) &amp;&amp; (a + 2 &lt; c)){
&lt;comando&gt;
}Nesta condição, pedimos para verificar se o valor da variável "a" é diferente do valor da variável "b" e ainda se o valor da variável "a" somado a 2 é menor que o valor da variável "c". Como usamos o conector lógico E, o comando que for colocado no bloco só será executado se as duas sentenças forem verdadeiras. Se colocássemos um "||" (barras verticais, não I nem L) no lugar de &amp;&amp;, qualquer caso em que pelo menos uma das sentenças fosse verdadeira executaria o código.
O funcionamento do IF é bem simples: Verifica se a condição é verdadeira baseando-se em regras pré-definidas de comparação binária, dentro do processador (ação efetuada em escala de nanosegundos) e executa o código se o resultado da sentença for verdadeiro. Se o resultado for falso, o programa procura algum ELSE. Se tiver um ELSE, executa o comando que tiver no ELSE. Se não tiver, passa diretamente para o próximo código na sequência do programa.
Para usar o IF com variáveis no lugar da condição, esta variável terá que ser declarada como bool (aceita apenas verdadeiro ou falso). Isso é interessante para quando você tem uma estrutura inteira para analisar se algo é verdadeiro ou falso, por exemplo, se um elemento existe em uma lista de elementos. A princípio não dá para fazer este reconhecimento em apenas uma sentença, necessita-se de uma função (falarei sobre funções mais adiante) com uma estrutura montada à mão, que retorne um valor bool. Esta função então pode ser usada como se fosse uma variável com um código dentro, e pode ser usada dentro do comando IF, usando a seguinte sintaxe:
if(verifica()){
&lt;comandos&gt;;
}Sendo "verifica()" o nome da função, ela retorna valores bool, ou verdadeiro, ou falso. Uma variável booleana poderia muito bem ser utilizada no lugar da função. O IF analisa se aquela expressão resulta em verdadeiro e executa. Se for falso, não executa e procura pelo ELSE. Se não encontrar passa para a sequência.
Muitas vezes também temos a necessidade de verificar se uma sentença (ou variável) é falsa. Ao colocar a variável ou a sentença dentro da condição do IF, basta colocar um ! (negação) à frente da variável ou sentença (esta última, podendo ser substituída com o operador relacional imediatamente contrário), ficando assim:
if(!(a &gt; b)){

//ou

if(a &lt;= b){*Nota: Pode-se usar // para comentar (ou seja, fazer uma anotação que será ignorada pelo programa, para fins de orientação de funcionalidade do código) uma linha ou /* */ para comentar um bloco de linhas. Neste caso, utiliza-se /* no começo do bloco e */ no final do bloco de comentários.
Verifica-se que o oposto de "Maior que" é "Menor ou igual a", por questões simplesmente matemáticas (se um número não é maior que outro, ele só pode ser menor ou então igual a ele).
Bem, acho que é isso por hoje. Estamos começando a evoluir na programação! Qualquer dúvida, comentem!
Até a próxima :)