Menu
Coddy logo textTech

count, all?, any?, none?

Parte de la sección Lógica y flujo del Journey de Ruby de Coddy. Lección 24 de 56.

Cuatro pequeños métodos de Enumerable que responden preguntas sobre una colección sin obligarte a escribir un bucle.

count devuelve cuántos elementos satisfacen el bloque:

[1, 2, 3, 4, 5].count { |n| n.even? }   # 2
[1, 2, 3, 4, 5].count                    # 5  (sin bloque, conteo total)

all? es true cuando cada elemento satisface el bloque:

[2, 4, 6].all? { |n| n.even? }    # true
[2, 4, 7].all? { |n| n.even? }    # false

any? es true cuando al menos uno lo hace:

[1, 2, 3].any? { |n| n.even? }    # true
[1, 3, 5].any? { |n| n.even? }    # false

none? es verdadero cuando ninguno de ellos lo cumple:

[1, 3, 5].none? { |n| n.even? }   # true

Los métodos hacen cortocircuito: any? se detiene en la primera coincidencia y all? se detiene ante el primer fallo. Son económicos.

challenge icon

Desafío

Fácil

Lee una lista de puntuaciones de pruebas separadas por comas (enteros). Una clase es una clase válida que aprueba cuando:

  • none? de las puntuaciones es negativa (una prueba no registrada)
  • all? las puntuaciones son como máximo 100
  • any? puntuación es exactamente 100 (al menos una puntuación perfecta)
  • al menos 3 puntuaciones son >= 70 (usa count)

Imprime exactamente una línea:

  • Valid: <count> passing cuando se cumplen las cuatro condiciones (count es la cantidad de puntuaciones >= 70)
  • Invalid en caso contrario

Para la entrada 72,80,100,65,90: 4 puntuaciones >= 70, ninguna negativa, todas <= 100, una es 100, por lo que la salida es Valid: 4 passing.

Para 72,80,90: 3 aprobadas, pero ninguna puntuación perfecta, por lo que la salida es Invalid.

Pruébalo tú mismo

scores = gets.chomp.split(",").map(&:to_i)

# TODO: combina all?, any?, none?, count para decidir Valid vs Invalid
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y flujo

Practica por tu cuenta: Compilador de Ruby online