Criando um script simples
Transcrição
Criando um script simples
Aula de JavaScript 05/03/10 Testando e Comparando Valores A Instrução if Um dos recursos mais importantes de uma linguagem de computador é a capacidade de testar e comparar valores, permitindo que seu programa se comporte diferentemente de acordo com o valor armazenado, naquele momento, em determinadas variáveis. A instrução if é a instrução principal condicional no JavaScript. Essa instrução consiste de duas partes: uma condição e uma ação, como mostrado abaixo: if condição verdadeira { instrução 1; instrução 2; ... } A instrução acima testa a condição. Se a condição é verdadeira, o conjunto de instruções entre as chaves é executado. Caso a condição seja falsa, o conjunto de instruções não será executado e sim a instrução que vier depois da instrução if. Observe o exemplo abaixo: if (a = = 1) window.alert(“Encontrou o número 1!”); window.alert(“Teste terminado”); O trecho de script acima testa se o conteúdo da variável a é igual a 1. Caso o conteúdo da variável a seja igual a 1, a instrução window.alert(“Encontrou o número 1!”); será executada e, logo depois, a instrução window.alert(“Teste terminado”);. Caso o conteúdo da variável a seja diferente de 1, somente a instrução window.alert(“Teste terminado”); será executada. No exemplo anterior vemos somente uma instrução como ação. Caso você queira que um conjunto de instruções seja executado caso a condição seja verdadeira, faça uso de chaves como o exemplo abaixo: if (a = = 1) { window.alert(“Encontrou o número 1!”); window.alert(“Você teve sucesso no teste”); } window.alert(“Teste terminado”); E Nemer 1 Aula de JavaScript 05/03/10 A palavra-chave else Um recurso adicional da instrução if é a palavra-chave else. Ela diz ao interpretador de JavaScript o que fazer caso a condição não seja verdadeira (ou seja, caso a condição seja falsa). Observe o exemplo abaixo: if (a = = 1) { window.alert(“Encontrou o número 1!”); window.alert(“Você teve sucesso no teste”); } else { window.alert(“Você não encontrou o número 1!”); window.alert(“Logo, você não teve sucesso no teste”); } window.alert(“Teste terminado”); Operadores condicionais Embora a parte relativa à ação de uma instrução if possa ser constituída de quaisquer das instruções de JavaScript, a parte relativa à condição utiliza expressões condicionais que fazem uso de operadores condicionais. Uma expressão condicional inclui dois valores a serem comparados. Esses valores podem ser variáveis ou até expressões. Obs.: Qualquer lado da expressão condicional pode ser uma variável, uma constante ou uma expressão. Você pode comparar uma variável e um valor ou comparar duas variáveis. (Você pode comparar duas constantes, mas normalmente não há nenhuma razão para isso.) Entre dois valores a serem comparados há um operador condicional. Por exemplo, na instrução abaixo, o operador == é utilizado para testar se os dois valores são iguais, ou seja, se o conteúdo de a é igual a 1. if (a = = 1) window.alert(“Encontrou o número 1!”); window.alert(“Teste terminado”); Uma variedade de operadores condicionais está disponível. Observe a tabela abaixo, assumindo que var1 recebeu o valor 3 e var2 recebeu o valor 4. E Nemer 2 Aula de JavaScript Operador igual a (= =) não igual a (! =) Estritamente igual (===) Estritamente não igual a ( ! = = ) Maior do que ( > ) Maior do que ou igual a ( > = ) Menor do que ( < ) Menor do que ou igual a ( < = ) 05/03/10 Descrição Retorna verdadeiro se os operandos são iguais. Se os operandos não forem do mesmo tipo, o JavaScript tenta converte-los para um tipo apropriado que possibilite a comparação. Retorna verdadeiro se os operandos não são iguais. Se os dois operandos não são do mesmo tipo, JavaScript tenta converte-los para um tipo apropriado que possibilite a comparação. Retorna verdadeiro se os operandos são iguais e do mesmo tipo. Retorna verdadeiro se os operandos não são iguais e/ou não são do mesmo tipo. Retorna verdadeiro se o operando da esquerda é maior do que o operando da direita. Retorna verdadeiro se o operando da esquerda é maior do que ou igual ao operando da direita. Retorna verdadeiro se o operando da esquerda é menor do que o operando da direita. Retorna verdadeiro se o operando da esquerda é menor do que ou igual ao operando da direita. condição = verdadeiro 3 = = var1 "3" = = var1 3 = = '3' var1 ! = 4 var2 ! = “3” 3 = = = var1 var1 ! = = “3” 3 ! = = ‘3’ var2 > var1 var2 > = var1 var1 > = 3 var1 < var2 var1 < = var2 var2 < = 5 Obs.: Não confunda o operador de igualdade (= =) com o operador de atribuição (=). Operadores lógicos Os operadores lógicos são usados tipicamente com valores Booleanos (verdadeiro e falso) e retornam um valor Booleano (verdadeiro ou falso). Operador && Uso expr1 && expr2 || expr1 || expr2 ! ! expr1 Descriçào (E lógico) Retorna verdadeiro somente se os dois operandos são verdadeiros; de outra forma, retorna falso. (OU Lógico) Retorna falso somente se os dois operandos são falsos; de outra forma retorna verdadeiro. (Não lógico) Retorna verdadeiro se o operando for falso; de outra forma retorna verdadeiro. Combinando condições com operadores lógicos Freqüentemente, você vai querer verificar uma variável para mais de um possível valor ou verificar mais de uma variável de uma vez. Por exemplo, as duas seguintes instruções verificam condições diferentes e utilizam a mesma ação: if (phone= = “ “) window.alert (“entrada incompleta!”); if (email = = “ “) window.alert (“entrada incompleta!”); E Nemer 3 Aula de JavaScript 05/03/10 Utilizando um operador lógico você pode combina-las em uma única instrução: if (phone = = “ “ || email = = “ “) window.alert (“entrada incompleta!”); A instrução acima utiliza o operador lógico OU, ou OR, ( || ) para combinar as condições. Traduzido para a linguagem natural, isso seria “se o número de telefone ou o endereço de correio eletrônico estiver em branco, exiba uma mensagem de erro”. Usando o operador lógico E, ou AND, ( && ), teríamos a seguinte situação: if (phone = = “ “ && email = = “ “) window.alert (“entradas incompletas!”); Essa instrução utiliza && (E) em vez de || (OU), então a mensagem de erro somente será exibida se ambos, o endereço de correio eletrônico e a variável de número de telefone, estiverem em branco. (Nesse caso particular, Or é a melhor escolha.) O terceiro operador lógico é o ! (Não lógico). Ele pode ser utilizado para inverter uma expressão – em outras palavras, uma expressão verdadeira se tornaria falsa e uma falsa se tornaria verdadeira, como mostrado no exemplo abaixo: if (phone ! = “ “ ) window.alert (“O campo de telefone foi preenchido”); Utilizando expressões condicionais O JavaScript fornece um tipo de abreviação de expressão condicional que você pode utilizar para tomar decisões rápidas. Observe a sintaxe abaixo: variável = (condição ) ? valor se condição verdadeira : valor se condição falsa; A instrução acima atribui um de dois valores à variável: um se a condição for verdadeira e outro se a condição for falsa, conforme mostrado no exemplo abaixo: valor = (a = = 1 ) ? 1 : 0 ; Esta instrução é equivalente a : if (a = = 1) valor=1; else valor=0; Em outras palavras, o valor depois do ponto de interrogação ( ? ) será utilizado se a condição for verdadeira e o valor depois dos dois pontos ( : ) será utilizado se a condição for falsa. Os dois pontos representam a parte else dessa instrução e, como a parte else da instrução if, é opcional. E Nemer 4 Aula de JavaScript 05/03/10 Um outro exemplo seria um script que contivesse um contador de número de palavras e que o conteúdo deste contador tivesse que ser exibido no vídeo. Neste caso poderíamos utilizar a seguinte instrução: document.write ( “Encontrou-se “+ contador+ ( (contador = = 1 ) ? “palavra.” : “palavras.”)) ; Esta instrução imprimirá a mensagem “Encontrou-se 1 palavra” caso o conteúdo da variável contador seja igual a 1; e imprimirá a mensagem “Encontrou-se n palavras” caso o conteúdo da variável contador seja igual a n e n seja maior do que 1. Utilizando múltiplas condições com switch Você, em algumas situações, precisará utilizar várias instruções if em uma linha para testar condições diferentes. A listagem abaixo mostra um exemplo: <title> Exemplo utilizando múltiplas instruções if </title> </head> <body> <h1> Exemplo de Resposta do Usuário </h1> Entre com a home-page que você deseja acessar <br> <script language="javascript"> destino = window.prompt ("Qual a página desejada?"); if (destino =="microsoft") window.location="http://www.microsoft.com"; if (destino =="netscape") window.location="http://www.netscape.com"; if (destino =="yahoo") window.location="http://www.yahoo.com"; </script> </body> </html> E Nemer 5 Aula de JavaScript 05/03/10 Embora este seja uma maneira compacta e bonita, este método pode ficar confuso caso cada instrução if tenha um bloco de código com várias instruções. O JavaScript inclui a instrução switch que permite combinar vários testes da mesma variável ou expressão em um único bloco de instruções. O exemplo abaixo mostra a aplicação da instrução switch. <html> <head> <title> Exemplo de Tratamento de Resposta do Usuário </title> </head> <body> <h1> Exemplo de Resposta do Usuário </h1> Entre com a home-page que você deseja acessar <br> <script language="javascript"> destino = window.prompt ("Qual a página desejada?"); switch (destino) { case "Netscape": window.location="http://www.netscape.com"; break; case "Microsoft": window.location="http://www.microsoft.com"; break; case "Yahoo": window.location="http://www.yahoo.com"; break; default: window.location="http://www.mcp.com"; } </script> </body> </html> A instrução switch tem vários componentes: E Nemer A instrução inicial switch. Essa instrução inclui o valor a testar (nesse caso, destino) entre parênteses; As chaves ( { e } ) incluem a instrução switch, semelhante a uma função ou uma instrução if; Uma ou mais instruções case. Cada uma dessas instruções especifica um valor para comparar com o valor especificado na instrução switch. Se o valor testado corresponder ao valor especificado no case, as instruções daquele case serão executadas, até que a instrução break seja encontrada; Caso o valor testado não corresponda a nenhum valor especificado nos cases, as instruções contidas na opção default serão executadas (a opção default é opcional). 6