Resumen - Flujo de Control
Parte de la sección Lógica y Flujo del Journey de Java de Coddy — lección 39 de 59.
Desafío
Crea un método llamado processArray que reciba dos argumentos:
- Un array unidimensional de Objetos (
data) que contiene tipos mixtos (Integer, String o Double) - 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
1Arreglos Multidimensionales
Básicos de Arreglos 2DAccediendo a Elementos de Arreglos 2DBucles Anidados con Arreglos 2DResumen - Arreglos 2DSuma y Resta de MatricesArreglos IrregularesArreglos 3D y Más AlláPatrones Comunes de Arreglos 2DResumen - Todo Sobre Arreglos4HashSet Parte 1
¿Qué es un HashSet?Agregando un elementoEliminando un elementoComprobando si existe un elementoVacío y tamañoLimpiar y clonarResumen - HashSet7Manejo Básico de Errores
Básicos de Try-CatchBloque FinallyLanzamiento de ExcepcionesExcepciones Personalizadas2HashMap Parte 1
¿Qué es un HashMap?Declarar un HashMapAcceder a ValoresVerificar si una Clave ExisteModificar DiccionariosResumen - HashMap3HashMap Parte 2
Métodos de HashMapIterar con keySet()Iterar con entrySet()HashMap AnidadoResumen - Gestionar AlmacénResumen - Operaciones de HashMap6Flujo de Control Avanzado
Sentencias EtiquetadasExpresión SwitchCoincidencia de PatronesCláusulas de GuardiaResumen - Flujo de Control9Proyecto - Contador de Palabras Únicas
Entrada y Almacenamiento de TextoProcesamiento de Palabras