Percursos
/
Ruby
Ruby
/
Programa
/
Condicionais
Co

Condicionais em Ruby

22 exercícios

Sobre Condicionais

O Ruby tem o que se chama expressões de controlo de fluxo. Servem para controlar a forma como o programa corre e assumem um valor truthy ou falsey. Há operadores que podem ser usados para criar valores truthy ou falsey; são os operadores de comparação.

Existem duas expressões de controlo principais que determinam que código corre e que código não corre. Ou seja, qual dos ramos é executado.

Essas duas são a expressão if e a expressão unless.

Operadores de comparação

Os operadores de comparação são usados para comparar valores e devolvem um valor true ou false. Os operadores seguintes exigem que os dois valores a comparar sejam do mesmo tipo. Se os valores não forem do mesmo tipo, o compilador dá um erro. Eis uma lista dos operadores e um exemplo de quando devolvem um valor true:

Método Descrição Exemplo
< menor que 4 < 5
<= menor ou igual a 4 <= 4
> maior que 3 > 1
>= maior ou igual a 2 >= 2

Os operadores de igualdade e de desigualdade podem ser usados para comparar qualquer tipo de valor, ao contrário dos operadores já mencionados. O operador == serve para verificar se dois valores são iguais, o que inclui verificar o tipo do valor. O != funciona da mesma forma, mas devolve true se os valores não forem iguais e false se forem iguais. Eis uma lista dos operadores de igualdade e de desigualdade e um exemplo de quando devolvem um valor true:

Método Descrição Exemplo
== igual a 4 == 4
!= diferente de 5 != 4

Operador de comparação combinado

O operador de comparação combinado (por vezes chamado operador nave espacial) é um operador de comparação especial. É especial no sentido em que não devolve um valor truthy ou falsey, mas sim um número. Escreve-se <=> e serve para comparar 2 valores. Devolve 1 se o valor da esquerda for maior que o da direita, -1 se o valor da esquerda for menor que o da direita, e 0 se os valores forem iguais.

1 <=> 2 # => -1
2 <=> 2 # => 0
3 <=> 2 # => 1

Condicional if

A condicional if é usada para verificar se uma dada condição é "truthy" ou "falsey". Se a condição for truthy, o código dentro da condicional é executado. Uma condicional if termina com a palavra-chave end.

value = 1
if value == 1
  "1 is equal to 1"
end
# => "1 is equal to 1"

if value > 2
  "1 is greater than 2"
end
# => nil

Condicional unless

A condicional unless funciona de forma muito semelhante à condicional if, mas executa o código dentro da condicional unless se a condição for falsey.

value = 1
unless value == 1
  "1 is not equal to 1"
end
# => nil

unless value > 2
  "1 is not greater than 2"
end
# => "1 is not greater than 2"

Cláusula else

A cláusula else pode ser usada em conjunto com a condicional if. A cláusula else é executada se o ramo if não for executado.

value = 1
if value == 1
  "1 is equal to 1"
else
  "1 is not equal to 1"
end
# => "1 is equal to 1"

if value > 2
  "1 is greater than 2"
else
  "1 is not greater than 2"
end
# => "1 is not greater than 2"

Condicionais em cascata

A cláusula elsif pode ser usada em conjunto com a condicional if. A cláusula elsif é executada se o ramo if não for executado e a condição da cláusula elsif for truthy. As cláusulas elsif podem ser encadeadas e a primeira condição truthy é executada. Também pode haver uma cláusula else no fim da condicional if, que é executada se nenhuma das anteriores tiver sido verdadeira.

value = 1
if value == 0
  "1 is equal to 0"
elsif value > 2
  "1 is greater than 2"
else
  "1 is not equal to 0 and 1 is not greater than 2"
end
# => "1 is not equal to 0 and 1 is not greater than 2"

if e unless como sufixo

As condicionais if e unless também podem ser usadas como [sufixo][if-as-suffix]. Isto é útil quando queres executar uma única linha de código se uma condição for verdadeira. Faz-se colocando a condicional if ou unless depois do código que queres executar.

value = 1
"1 is equal to 1" if value == 1
# => 1 is equal to 1

"1 is not equal to 1" unless value == 1
# => nil
Editar via GitHub A ligação abre numa nova janela ou separador

Aprende Condicionais

A prática está bloqueada

Desbloqueia mais 10 exercícios para praticares Condicionais