# Igualdade: retorna true se os valores forem iguais
2 + 2 == 4true
O objetivo deste capítulo é entender como um programa pode tomar decisões e alterar seu fluxo de execução. Vamos explorar os operadores de comparação, o tipo booleano, e as estruturas condicionais if, else e elseif em Julia.
Antes de estudarmos estruturas condicionais, precisamos entender os operadores de comparação e o tipo de dado que eles produzem: o tipo booleano (Bool). Uma variável booleana pode ter apenas dois valores possíveis: true (verdadeiro) ou false (falso). Vamos examinar os principais operadores de comparação em Julia:
# Igualdade: retorna true se os valores forem iguais
2 + 2 == 4true
# Diferença: retorna true se os valores forem diferentes
3 != 8true
# Menor que: retorna true se o primeiro valor for menor que o segundo
23 < 24true
# Menor ou igual: retorna true se o primeiro valor for menor ou igual ao segundo
42 <= 44true
# Maior que: retorna true se o primeiro valor for maior que o segundo
42 > 2true
# Maior ou igual: retorna true se o primeiro valor for maior ou igual ao segundo
42 >= 42true
É importante observar que em linguagens de programação, incluindo Julia, o sinal de igual (=) é usado para atribuição de valores a variáveis, enquanto o operador de igualdade (==) é usado para comparações.
Podemos verificar o tipo de uma expressão de comparação:
typeof(2 == 3)Bool
Como esperado, o tipo é Bool, indicando um valor booleano.
Além dos operadores de comparação, Julia também oferece operadores lógicos que permitem combinar ou modificar valores booleanos:
# Operador NOT (negação): inverte o valor booleano
!truefalse
!falsetrue
# Operador AND: retorna true apenas se ambos os valores forem true
true && truetrue
true && falsefalse
# Operador OR: retorna true se pelo menos um dos valores for true
true || falsetrue
false || falsefalse
Esses operadores são essenciais para construir condições mais complexas em nossas estruturas condicionais.
Até agora, nossos programas seguiam um fluxo de execução linear, com as instruções sendo executadas na ordem em que foram escritas. Veja o exemplo:
println("Oi")
println("um")
println("dois")Oi
um
dois
A ordem de impressão será “Oi”, “um” e “dois”, exatamente na sequência em que os comandos foram escritos.
No entanto, muitas vezes precisamos que nosso programa tome decisões e execute diferentes blocos de código dependendo de certas condições. É aqui que entra a estrutura condicional if.
A estrutura if permite executar um bloco de código apenas se uma condição for verdadeira:
pandemia = true
println("Vou sair de casa?")
if pandemia == true
println("Só vou sair de casa se for essencial")
endVou sair de casa?
Só vou sair de casa se for essencial
Neste exemplo, a mensagem “Só vou sair de casa se for essencial” só será impressa se a variável pandemia for igual a true.
Aqui está outro exemplo:
denominador = 1
if denominador != 0
println("Sei fazer a divisão se não for por zero")
println("O resultado da divisão de 30 por ", denominador, " é igual a ", 30/denominador)
endSei fazer a divisão se não for por zero
O resultado da divisão de 30 por 1 é igual a 30.0
O código dentro do bloco if só será executado se o denominador for diferente de zero, evitando assim um erro de divisão por zero.
Frequentemente, queremos executar um bloco de código se uma condição for verdadeira e outro bloco se a condição for falsa. Para isso, usamos a estrutura if-else:
pandemia = true
println("Vou sair de casa?")
if pandemia == true
println("Só vou sair de casa se for essencial")
else
println("Balada liberada!!")
endVou sair de casa?
Só vou sair de casa se for essencial
Se a variável pandemia for true, será impressa a mensagem “Só vou sair de casa se for essencial”. Caso contrário, será impressa a mensagem “Balada liberada!!”.
E se tivermos mais de duas situações possíveis? Nesse caso, podemos usar a estrutura if-elseif-else:
pandemia = true
tenhoqueestudar = true
println("Vou sair de casa?")
if pandemia == true
println("Só vou sair de casa se for essencial")
elseif tenhoqueestudar == true
println("Melhor ficar em casa")
else
println("Balada liberada")
endVou sair de casa?
Só vou sair de casa se for essencial
Neste exemplo, temos três caminhos possíveis:
A estrutura if-elseif-else avalia as condições na ordem em que aparecem. Assim que uma condição verdadeira é encontrada, o bloco correspondente é executado e as demais condições são ignoradas.
= e o operador == em Julia? Por que essa distinção é importante?(a > b) && !(c == d). Explique em palavras o que ela significa.&& e || em Julia. Como esse comportamento pode ser útil em programação?true e false, quais outros valores são considerados “verdadeiros” ou “falsos” em um contexto booleano??:) em Julia e como ele pode ser usado como uma alternativa mais concisa para certas estruturas if-else.