Ser Programador

Entendendo o IF, ELSE e ELSEIF no Adobe ColdFusion

Abordaremos a utilização prática do CFIF, CFELSE e CFELSEIF no ColdFusion.


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.