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 reciba dos argumentos:

  1. Un array unidimensional de Objetos (data) que contiene 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:

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

Reglas de procesamiento:

  • "sum": Sumar todos los valores numéricos (ignorar los strings)
  • "find": Encontrar el primer valor numérico mayor que 100

Los mensajes de retorno deben ser:

  • Si el array es nulo o está vacío: devolver "Invalid input"
  • Si el tipo no es válido: devolver "Invalid type"
  • Para "sum": devolver "Sum: X"
  • Para "find": devolver el índice como un String, 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