Pílula K#07 — IF: Escolhas!. E aí, galera! Hoje a pílula vai dar… | by means of Klaus Dellano | HavanLabs | Nov, 2023

E aí, galera! Hoje a pílula vai dar força para você conseguir escolher qualquer coisa… aprendendo sobre expressões IF. Esse é um conceito muito importante, e para deixar tudo mais interessante, vamos ver vários exemplos práticos. Simbora!

Expressões IF são como aqueles momentos em que você precisa decidir se vai comer uma pizza ou uma salada. A palavra-chave if verifica uma expressão para ver se é verdadeira ou falsa e realiza uma ação com base no resultado. Essas expressões verdadeiras ou falsas são chamadas de Booleanas (porque chama assim? Homenagem para um cara muito louco, chamado George Boole… em breve voltaremos nele).

Vamos começar com um exemplo usando os símbolos > (maior que) e < (menor que):

a laugh primary() {
if (1 > 0)
println("É verdade!")
if (10 < 11) {
println("10 < 11")
println("dez é menor que onze")
}
}

/* Saída:
É verdade!
10 < 11
dez é menor que onze
*/

A expressão dentro dos parênteses após o if deve ser avaliada como verdadeira ou falsa. Se for verdadeira, a expressão seguinte será executada. Para executar várias linhas, coloque-as entre chaves.

Podemos criar uma expressão booleana em um lugar e usá-la em outro:

a laugh primary() {
val x: Boolean = 1 >= 1
if (x) println("É verdade!")
}

/* Saída:
É verdade!
*/

Como x é booleano, o if pode testá-lo diretamente dizendo if(x). O operador booleano >= retorna verdadeiro se a expressão à esquerda do operador for maior ou igual à da direita. Da mesma forma, <= retorna verdadeiro se a expressão à esquerda for menor ou igual à da direita.

A palavra-chave else permite lidar com os caminhos verdadeiro e falso:

a laugh primary() {
val n: Int = -11
if (n > 0)
println("É positivo")
else
println("É negativo ou 0")
}

/* Saída:
É negativo ou 0
*/

A palavra-chave else é usada apenas em conjunto com if. Você não está limitado a uma única verificação – pode testar várias combinações combinando else e if:

a laugh primary() {
val n: Int = -11
if (n > 0)
println("É positivo")
else if (n == 0)
println("É 0")
else
println("É negativo")
}

/* Saída:
É negativo
*/

Aqui, usamos == para verificar se dois números são iguais. != testa a desigualdade. O padrão típico é começar com if, seguido por tantas cláusulas else if quanto necessário, terminando com um else ultimate para qualquer coisa que não corresponda a todos os testes anteriores.

Quando uma expressão if atinge um certo tamanho e complexidade, você provavelmente usará uma expressão when em vez disso. Falaremos sobre a expressão when em outra dose, então fique de boa na lagoa e bora continuar…

O operador “não” (!) testa o oposto de uma expressão booleana:

a laugh primary() {
val y: Boolean = false
if (!y)
println("!y é verdadeiro")
}

/* Saída:
!y é verdadeiro
*/

Para verbalizar if(!y), diga “se não y”.

A expressão if inteira pode produzir um resultado:

a laugh primary() {
val num = 10
val resultado = if (num > 100) 4 else 42
println(resultado)
}

/* Saída:
42
*/

Aqui, armazenamos o valor produzido pela expressão if inteira em um identificador intermediário chamado resultado. Se a condição for satisfeita, o primeiro bloco produz o resultado. Caso contrário, o valor else se torna o resultado.

Vamos praticar a criação de funções. Aqui está uma que recebe um parâmetro booleano:

a laugh verdadeiroOuFalso(exp: Boolean): String {
if (exp)
go back "É verdade!" // [1]
go back "É falso" // [2]
}

a laugh primary() {
val b = 1
println(verdadeiroOuFalso(b < 3))
println(verdadeiroOuFalso(b >= 3))
}

/* Saída:
É verdade!
É falso
*/

O parâmetro booleano exp é passado para a função verdadeiroOuFalso(). Se o argumento for passado como uma expressão, como b < 3, essa expressão é avaliada primeiro e o resultado é passado para a função. verdadeiroOuFalso() testa exp e, se o resultado for verdadeiro, a linha [1] é executada, caso contrário, a linha [2] é executada.

Em vez de usar go back, como no exemplo anterior, você pode usar a palavra-chave else para produzir o resultado como uma expressão:

a laugh umOuOutro(exp: Boolean): String =
if (exp)
"Verdadeiro!" // Não é necessário 'go back'
else
"Falso"

a laugh primary() {
val x = 1
println(umOuOutro(x == 1))
println(umOuOutro(x == 2))
}

/* Saída:
Verdadeiro!
Falso
*/

Em vez de duas expressões em verdadeiroOuFalso(), umOuOutro() é uma única expressão. O resultado dessa expressão é o resultado da função, então a expressão if se torna o corpo da função.

Leave a Reply

Your email address will not be published. Required fields are marked *