Estrutura IF
Vemos como trabalhar com a estrutura de controle IF em Javascript.
IF é uma estrutura de controle utilizada para tomar decisões. É uma condicional que realiza umas ou outras operações em função de uma expressão. Funciona da seguinte maneira, primeiro se avalia uma expressão se o resultado dá positivo realizam-se as ações relacionadas com o caso positivo.
A sintaxe da estrutura IF é a seguinte:
if (expressão) {
ações a realizar em caso positivo
...
}
Opcionalmente se podem indicar ações a realizar no caso de que a avaliação da sentença dê resultados negativos.
if (expressão) {
ações a realizar em caso positivo
...
} else {
ações a realizar em caso negativo
...
}
Observemos várias coisas: Para começar vemos como com umas chaves englobam as ações que queremos realizar no caso de que se cumpram ou não as expressões. Estas chaves devem ser colocadas sempre, exceto no caso de que somente haja uma instrução como ações a realizar, que são opcionais.
Outro detalhe que está descarado é a margem que colocamos em cada um dos blocos de instruções para executar nos casos positivos e negativos. Esta margem é totalmente opcional, somente fizemos assim para que a estrutura IF se compreenda de uma maneira mais visual. As quebras de linhas também não são necessárias e foram assim colocadas para que se veja melhor a estrutura. Poderíamos perfeitamente colocar toda a instrução IF na mesma linha de código, mas isso não ajudará que as coisas estejam claras. Nós, e qualquer programador, aconselhamos que utilizem as margens e as quebras de linhas necessárias para que as instruções possam ser entendidas melhor, hoje e dentro de um mês, quando já não será tão fácil lembrar o que foi feitos em seus scripts.
Vejamos um exemplo de condicionais IF.
if (dia == "Segunda-feira")
document.write ("Que tenha um ótimo começo de semana")
Se for segunda-feira nos desejará uma ótima semana. Não fará nada em caso contrário. Como neste exemplo somente indicamos uma instrução para o caso positivo, não será preciso utilizar as chaves. Observe também no operador condicional que consta de dois signos "igual".
Vamos ver agora outro exemplo, um pouco mais comprido.
if (credito >= preço) {
document.write("comprou o artigo " + novoArtigo) //mostro compra
carrinho += novoArtigo //coloco o artigo no carrinho da compra
credito -= preço //diminuo o crédito conforme o preço do
artigo
} else {
document.write("acabou o seu crédito") //informo que lhe falta
dinhero
window.location = "carrinhodacompra.html" //vou à página
do carrinho
}
Este exemplo é um pouco mais complexo, e também um pouco fictício. O que faço é comprovar se tenho crédito para realizar uma suposta compra. Para isso, vejo se o crédito é maior ou igual que o preço do artigo, se é assim, informa da compra, coloco o artigo no carrinho e subtraio o preço ao crédito acumulado. Se o preço do artigo é superior ao dinheiro disponível, informo a situação e mando ao navegador à página onde se mostra seu carrinho da compra.
Expressões condicionais
A expressão a avaliar se coloca sempre entre parêntesis e está composta por variáveis que se combinam entre si mediante operadores condicionais. Lembramos que os operadores condicionais relacionavam duas variáveis e devolviam sempre um resultado boleano. Por exemplo, um operador condicional é o operador "é igual" (==), que devolve true no caso de que os operandos sejam iguais ou false no caso de que sejam distintos.
if (idade > 18)
document.write("pode ver esta página para adultos")
Neste exemplo, utilizamos em operador condicional "é maior" (>). Neste caso, devolve true se a variável idade é maior que 18, com o que se executaria a linha seguinte que nos informa de que se pode ver o conteúdo para adultos.
As expressões condicionais podem ser combinadas com as expressões lógicas para criar expressões mais complexas. Lembramos que as expressões lógicas são as que têm como operandos aos boleanos e que devolvem outro valor boleano. São os operadores de negação lógica, E lógico e O lógico.
if (bateria == 0 && redeEletrica = 0)
document.write("seu laptop vai se apagar em segundos")
O que fazemos é comprovar se a bateria de nosso suposto computador está a zero (acabada) e também comprovamos se o computador não tem rede elétrica (se está fora da tomada). Logo, o operador lógico os relaciona com um E, de modo que se está sem bateria E sem rede elétrica, informo que o ordenador vai se apagar.
A lista de operadores que se podem utilizar com as estruturas IF, podem ser
vistos no capítulo de operadores condicionais e operadores lógicos.
Sentenças IF aninhadas
Para fazer estruturas condicionais mais complexas podemos aninhar sentenças IF, ou seja, colocar estruturas IF dentro de outras estruturas IF. Com um só IF podemos avaliar e realizar uma ação ou outra segundo duas possibilidades, mas se temos mais possibilidades que avaliar devemos aninhar Ifs para criar o fluxo de código necessário para decidir corretamente.
Por exemplo, se desejo comprovar se um número é maior ou igual ao outro, tenho que avaliar três possibilidades distintas. Primeiro, posso comprovar se os dois números são iguais, se são, já está resolvido o problema, mas se não são iguais ainda terei que ver qual dos dois é o maior. Vejamos este exemplo em código Javascript.
var numero1=23
var numero2=63
if (numero1 == numero2){
document.write("Os dois números são iguais")
else {
if (numero1 > numero2) {
document.write("O primeiro número é maior que o segundo")
}else{
document.write("O primeiro número é menor que o segundo")
}
}
O fluxo do programa é como comentávamos antes, primeiro se avalia se os dois números são iguais. No caso positivo se mostra uma mensagem o informando. No caso contrário, já sabemos que são distintos, mas ainda devemos averiguar qual dos dois é maior. Para isso, faz-se outra comparação para saber se o primeiro é maior que o segundo. Se esta comparação dá resultados positivos mostramos uma mensagem dizendo que o primeiro é maior que o segundo, em caso contrário indicaremos que o primeiro é menor que o segundo.
Voltamos a ressaltar que as chaves neste caso são opcionais, pois só se executa uma sentença para cada caso. Ademais, as quebras de linhas e as margens são opcionais em todo caso e nos serve somente para ver o código de uma maneira mais ordenada. Manter o código bem estruturado e escrito de una maneira compreensível é muito importante, já que nos fará a vida mais agradável na hora de programar e mais adiante quando tenhamos que revisar os programas. Neste manual utilizarei uma anotação como a que pode ser vista nas linhas anteriores, e também será visto adiante, ademais manterei essa anotação em todo momento. Isto sem lugar á dúvidas fará com que os códigos com exemplos sejam compreensíveis mais rapidamente, se não fizéssemos assim, seria um verdadeiro sacrifício lê-los. Esta mesma receita é aplicável aos códigos que você irá criar e o principal beneficiado será você mesmo e os companheiros que cheguem a ler seu código.
Operador IF
Existe um operador que ainda não vimos e é uma forma mais esquemática de realizar alguns IF simples. Provém da linguagem C, onde se escrevem muitas poucas linhas de código que resulta muito elegante. Este operador é um claro exemplo de economia de linhas e caracteres ao escrever os scripts. Será visto rapidamente, pois a única razão pela qual o incluo é para que saiba que existe e se o encontra em alguma ocasião por aí, você saiba identificá-lo e como funciona.
Um exemplo de uso de operador IF pode ser visto a seguir:
Variável = (condição) ? valor1 : valor2
Este exemplo não só realiza uma comparação de valores, como também atribui um valor a uma variável. O que faz é avaliar a condição (colocada entre parênteses) e se é positiva atribui o valor1 à variável e no caso contrário lhe atribui o valor 2. Vejamos um exemplo:
momento = (hora_atual < 12) ? "Antes de meio-dia" : "Depois de meio-dia"
Este exemplo olha se a hora atual é maior que 12. Sendo assim, quer
dizer que agora é antes de meio-dia, assim que atribui "Antes de
meio-dia" à variável momento. Se a hora é maior ou
igual a 12 é que é depois de meio-dia, com o que se atribui o
texto "Depois de meio-dia" à variável momento.