Jestor Pro para Business |PHP|Parte 4

Conceitos básicos para criar soluções personalizadas.

No último texto, falei um pouco de operadores e funções, que são partes fundamentais para que possamos realizar tarefas mais complexas e validar informações. Nesta seção, falarei sobre expressões if e switch, loops for e while, e revisarei um pouco de sintaxe.


Entendendo a função if

A expressão if é uma das expressões mais clássicas da programação. É tão prevalente que, muitas vezes, até pessoas sem conhecimento de programação tem alguma vaga noção de que ela existe.

Sua função é bem auto explicativa: a função if determina que, se uma condição for verdadeira, então algo acontece.

Vamos pensar na seguinte situação: num jogo de cara-ou-coroa, você escolhe qual face da moeda cairá para cima, e depois compara sua escolha com o lançamento. Escrevendo a regra de forma literal, se sua escolha e o lançamento forem iguais, então o resultado será que você ganhou.

Traduzindo isso para o PHP, podemos pensar em algo desse tipo:

if($escolha == $lancamento){
  $resultado=”ganhou”;
}

No entanto, isso não representa todas as situações possíveis, já que também é possível perder. No jogo de cara-ou-coroa, sempre que você não ganha, você perde. Nesse caso, é possível utilizar a condição else.

O else é como uma parte senão ou caso contrário da frase. Neste caso do jogo, se a escolha for igual ao lançamento, então você ganhou, caso contrário você perdeu. Ou seja, o else ocorrerá sempre que o if for falso. No código, seria algo como o bloco abaixo:

if($escolha == $lancamento){
  $resultado=”ganhou”;
}

else {
  $resultado=”perdeu”;
}

Além disso, você também pode adicionar mais casos específicos para conferir antes do else. Isso é feito através do elseif. Pense nele como uma expressão ou então.

Para entender melhor, pensemos no seguinte jogo: você e seu oponente jogam um dado e quem rolar o maior número vence. Neste caso, temos três cenários: vitória, empate e derrota.

Assim, poderíamos escrever o código da seguinte forma.

if($dadojogador > $dadooponente){
  $resultado=”ganhou”;
}

elseif ($dadojogador == $dadooponente) {
  $resultado=”empatou”;
}

else {
  $resultado=”perdeu”;
}

Lembre que você também pode adicionar quantas condições elseif quiser, efetivamente criando um caminho novo para cada situação.

Algo importante de se entender sobre a expressão if é que é possível validar mais de uma informação dentro da mesma expressão utilizando os operadores mencionados no último texto. Por exemplo, no caso a seguir:

if(($a > $b) && ($a > 10)){
  $resultado=”a é maior que b e maior que dez”;
}

O if só ocorrerá caso a seja maior que b, mas também maior que dez.

A expressão if é muito útil e versátil em diversos casos. No entanto, caso o valor de uma variável seja limitado, ou seja, caso a variável possua apenas alguns valores possíveis e eu queira determinar ações em função destes valores, é possível também utilizar a função switch.


Entendendo a função switch

Pense no switch como um if otimizado para situações onde cada valor possível de uma variável é conhecido e terá um resultado diferente.

Vamos pensar em outro jogo: ao arremessar um dado, o resultado definirá a cor da peça do jogador. É possível montar uma estrutura de if, elseif e else para estas regras. No entanto, também podemos utilizar a estrutura de switch e determinar o processo caso a caso:

switch($dado){
  case 1:
    $cor=”branco”;
    break;
  case 2:
    $cor=”preto”;
    break;
  case 3:
    $cor=”azul”;
    break;
  case 4:
    $cor=”vermelho”;
    break;
  case 5:
    $cor=”verde”;
    break;
  case 6:
    $cor=”amarelo”;
    break;
}

Ao rolar um dado e recebermos um valor 5, por exemplo, a peça será definida como verde.

Perceba também que utilizamos o comando break ao final de cada caso. É ele quem determina que o fim da execução do código dentro do switch, e é nele que está uma grande vantagem dessa expressão: como conseguimos determinar o fim da execução do bloco de código, podemos ter processos mais rápidos e eficientes ao não executar todas as comparações.

Por fim, temos também um caso especial, o default. Ele executa basicamente a mesma função de um else, podendo ser utilizado quando nenhum dos outros casos é válido.

Agora que entendemos essas duas expressões, vamos falar dos loops lógicos.


Entendendo o loop while

Como é possível deduzir pelo nome loop, essas são expressões que são executadas repetidamente.

No caso do loop while, é um bloco de código que é executado enquanto a condição dentro do while for verdadeira. Observe o código abaixo:

$i = 0;

while($i < 10){
  $i = $i + 1;
}

Nele, primeiramente definimos que o valor de $i era zero, e depois construímos um loop de while que rodará enquanto $i for menor do que 10. Ou seja, neste caso, o código será executado dez vezes: após a décima, o valor igual a 10, não satisfazendo mais a condição dentro do while.

O while é uma das construções de loop mais simples possíveis. No entanto, é importante tomar cuidado: é possível criar um while que sempre será verdadeiro (por exemplo, se não alterássemos o valor de $i), o que faria o código rodar infinitamente.

Uma vantagem do while é que a condição a ser analisada pode ser de qualquer tipo. Já para casos em que queremos rodar um código iterativamente, muitas vezes é melhor utilizar a construção for.


Entendendo o loop for

O for e um loop que te obriga a definir previamente os limites da iteração e como este processo será iterado seguindo o padrão: condição inicial, condição limite e iteração.

Apesar de parecer complexo, é na realidade uma expressão bem fácil de entender uma vez que é escrita. Na construção abaixo:

$k = 1;

for ($i = 1; $i <= 5; $i++) {
  $k = $k * 2;
}

Definimos que, para $iiniciando em 1, enquanto $i for igual ou menor a 5 executaremos o código entre as chaves (que dobra o valor de $k), e ao final da execução $i será incrementado em 1. Na prática, o código será executado 5 vezes, e o valor final de $k será de 32.

Existe uma série de outras estruturas de controle que são muito úteis para problemas do dia-a-dia, e você pode aprender um pouco mais dessas construções aqui.


Lembrando a sintaxe antes de começarmos!

Ufa! Se você chegou até aqui, já tem conhecimento teórico o suficiente para começar a criar automatizações no Jestor Pro!

Antes de finalmente falarmos das funções nativas do Jestor e montarmos uma automatização de exemplo, vamos lembrar só um pouco da sintaxe do PHP para evitarmos alguns erros comuns na escrita dos primeiros códigos.

  • Variáveis começam com “$”, além de terem diferenciação entre letras maiúsculas e minúsculas.
  • Toda instrução termina com “;”: sempre que uma instrução é escrita (por exemplo, definir o valor de uma variável), finalize a linha com ponto e vírgula.
  • Valores de arrays são referenciados dentro de colchetes: $gaveta[0] identifica a posição 0 da gaveta.
  • Já funções possuem parâmetros dentro de parênteses e separados por vírgula, é importante ler a documentação da função para entender o que cada parâmetro faz.
  • Blocos de código de expressões ou loops ficam dentro de chaves “{}”: se algo ficar de fora, não será executado.

Pra ficar esperto!

Abaixo reuni alguns dos pontos de confusão comuns quando trabalhamos com expressões e loops:

  • ⚠️ Os operadores importam: o igual solitário “=” é um operador de atribuição, não comparação. Além disso, “==” compara apenas o valor, e “===” compara valor e tipo. Entenda o seu objetivo e use os operadores adequados.
  • ⚠️ Entenda todas as implicações da sua comparação: é bem comum criarmos uma comparação mais complexa dentro de um if e descobrirmos que o código é executado em situações que não previmos. Pense em todos os casos e ajuste a condição de acordo.
  • ⚠️ Cuidado com loops infinitos: já mencionei uma vez, mas cuidado para não criar um loop que sempre será satisfeito. Muitas vezes, isso acontece por puro descuido: esquecemos de iterar uma variável, ou setamos sua condição inicial dentro do próprio loop.

Com o básico do PHP regular coberto, vamos falar das funções nativas do Jestor ?