Menu
Coddy logo textTech

Resumen - Flujo de Control

Parte de la sección Lógica y Flujo del Journey de Java de Coddy. Lección 39 de 59.

challenge icon

Desafío

Crea un método llamado processArray que acepte dos argumentos:

  1. Un array unidimensional de Objects (data) que contenga tipos mixtos (Integer, String o Double)
  2. Un String (type) para el tipo de procesamiento: "sum" o "find"

Tu solución debe demostrar estos conceptos:

  • Usa cláusulas de guarda para validar la entrada al comienzo del método
  • Usa la coincidencia de patrones con instanceof para comprobar y convertir tipos (por ejemplo, if (value instanceof Integer i))
  • Usa expresiones switch con sintaxis de flecha (por ejemplo, switch (type) -> {)
  • Usa bucles etiquetados con break o continue (por ejemplo, search: for())

Reglas de procesamiento:

  • "sum": Suma todos los valores numéricos (ignora las cadenas)
  • "find": Encuentra el primer valor numérico mayor que 100

Los mensajes devueltos deben ser:

  • Si el array es null o está vacío: devuelve "Invalid input"
  • Si el tipo no es válido: devuelve "Invalid type"
  • Para "sum": devuelve "Sum: X"
  • Para "find": devuelve la posición de ese valor en data, o "Not found" si ningún valor numérico es mayor que 100

Pruébalo tú mismo

import java.util.Scanner;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;

public class Main {
    public static String processArray(Object[] data, String type) {
        // Escribe tu código aquí
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String dataJson = scanner.nextLine();
        String type = scanner.nextLine();
        
        Type arrayType = new TypeToken<Object[]>(){}.getType();
        Object[] data = new Gson().fromJson(dataJson, arrayType);
        
        System.out.println(processArray(data, type));
    }
}

Todas las lecciones de Lógica y Flujo

Practica por tu cuenta: Compilador de Java online