Sendo de lógica tão simples quanto nas demais linguagens, o IF, ELSE e ELSEIF no ColdFusion ainda sim tem suas singelas particularidades.
Veremos exemplos simples e práticos de suas aplicações logo a seguir.
Neste artigo não exploraremos todos os Operadores Condicionais do ColdFusion. Para entender mais sobre eles, leia ESTE ARTIGO.
Como apresentamos no artigo inicial dessa série de artigos sobre o ColdFusion, não tem muito segredo quanto à instância de uma cláusula IF. Para nosso primeiro exemplo, vamos instanciar uma variável que guardará o CPF do usuário:
<cfset cpf = '87965423145'>
Utilizamos o comando cfset para instanciar uma variável.
Vamos então verificar utilizando IF se o CPF digitado contém todos os caracteres de um CPF:
<cfset cpf = '87965423145'> <cfif len(cpf) neq 11>O CPF #cpf# informado não está no formato correto! </cfif>
Utilizamos a função len fornecendo o CPF como parâmetro, para obtermos a quantidade de caracteres existentes na variável;
Utilizamos o operador condicional neq para verificar se a contagem de caracteres do CPF não é equivamente a onze;
Utilizamos o cfoutput para apresentar uma mensagem, fazendo uso da variável CPF para construir o texto da mensagem;
Para apresentar o valor de uma variável dentro de uma string, utilizamos o caractere de cerquilha antes e depois da variável;
Podemos então, instanciar um ELSE para registrar se o CPF está dentro dos conformes de validação:
<cfset cpf = '87965423145'> <cfif len(cpf) neq 11> <cfset cpf_validado = false>O CPF #cpf# informado não está no formato correto! <cfelse> <cfset cpf_validado = true> </cfif>
Note que o comando cfelse entrou "no meio" do comando IF, sem trazer uma tag de fechamento, assim como tem o CFIF. No ColdFusion, o fechamento do ELSE é o próprio fechamento do IF.
Existe uma forma mais inteligente de construir essa lógica, e seria a seguinte:
<cfset cpf = '87965423145'> <cfset cpf_validado = true> <cfif len(cpf) neq 11> <cfset cpf_validado = false>O CPF #cpf# informado não está no formato correto! </cfif>
O cfelse somente seria útil de fato nesse exemplo, se houvesse algo que fosse necessário fazer no qual coubesse estritamente ao cfelse lidar. Do contrário, evitar o uso de else no código, é sempre muito bem-vindo.
Vamos agora ver um exemplo utilizando o ELSEIF para fazer uma validação da nota de um aluno, apresentando uma mensagem de acordo com a condição de "aprovado", "em recuperação" e "reprovado":
<cfset nota = 8> <cfif nota gte 7>O aluno foi aprovado com nota #nota#! <cfelseif nota gte 5>O aluno está em recuperação com a nota #nota#. <cfelse>O aluno está reprovado com a nota #nota#. </cfif>
Primeiro verificamos com cfif se a nota do aluno é maior ou igual a sete;
Caso a nota não seja maior ou igual a sete, verificamos com cfelseif se a nota é maior ou igual a cinco;
Por fim, se a nota for inferior a cinco, utilizamos o cfelse para informar a reprovação;
Espero que com esses exemplos, eu tenha sanado todas as dúvidas quanto a usabilidade desses recursos no ColdFusion.