Menu
Coddy logo textTech

Operador Ternário

Parte da seção Lógica e Fluxo do Journey de Ruby da Coddy — lição 40 de 56.

O operador ternário é um atalho de uma linha para um if/else que retorna um valor. A sintaxe é condition ? value_if_true : value_if_false.

age = 20
status = age >= 18 ? "Eligible" : "Not Eligible"
puts status   # Eligible

É o mesmo que escrever:

status = if age >= 18
           "Eligible"
         else
           "Not Eligible"
         end

Use o ternário quando ambos os ramos retornarem valores curtos. Se qualquer um dos ramos precisar de mais de uma expressão, recorra a um if/else real: colocar conteúdo demais em um ternário torna-o difícil de ler.

Você pode usá-lo diretamente dentro de outras expressões, incluindo interpolação:

count = 1
puts "#{count} item#{count == 1 ? "" : "s"}"   # 1 item
count = 5
puts "#{count} item#{count == 1 ? "" : "s"}"   # 5 itens
challenge icon

Desafio

Fácil

Leia um número inteiro n da entrada. Usando o operador ternário (sem blocos if/else), imprima exatamente:

<n> is <label>

onde label é:

  • positive quando n > 0
  • negative quando n < 0
  • zero quando n == 0

Dica: use um ternário aninhado, condition ? a : (other_condition ? b : c).

Para a entrada 5 a saída é 5 is positive. Para 0 é 0 is zero.

Folha de consulta

O operador ternário é um atalho de uma linha para if/else: condition ? value_if_true : value_if_false

age = 20
status = age >= 18 ? "Eligible" : "Not Eligible"  # "Eligible"

Ternários podem ser aninhados e usados dentro de interpolação de strings:

count = 5
puts "#{count} item#{count == 1 ? "" : "s"}"  # 5 itens

# Ternário aninhado
n = 3
label = n > 0 ? "positive" : (n < 0 ? "negative" : "zero")

Use o ternário apenas para ramificações curtas e simples — prefira if/else quando as ramificações precisarem de múltiplas expressões.

Experimente você mesmo

n = gets.to_i

# TODO: use uma expressão ternária para construir o rótulo, depois use puts
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e Fluxo