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

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

Tu solución debe demostrar estos conceptos:

  • Usa cláusulas de guardia para validar la entrada al inicio del método
  • Usa coincidencia de patrones instanceof para verificar y convertir tipos (p. ej., if (value instanceof Integer i))
  • Usa expresiones switch con sintaxis de flecha (p. ej., switch (type) -> {)
  • Usa bucles etiquetados con break o continue (p. ej., 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 de retorno deben ser:

  • Si el arreglo es null o vacío: return "Invalid input"
  • Si el tipo es inválido: return "Invalid type"
  • Para "sum": return "Sum: X"
  • Para "find": return el índice del valor encontrado o "Not found"

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