Menu
Coddy logo textTech

Resumo - Fluxo de Controle

Parte da seção Lógica e Fluxo do Journey de Java da Coddy — lição 39 de 59.

challenge icon

Desafio

Crie um método chamado processArray que recebe dois argumentos:

  1. Um array unidimensional de Objects (data) contendo tipos mistos (Integer, String ou Double)
  2. Uma String (type) para o tipo de processamento: "sum" ou "find"

Sua solução deve demonstrar estes conceitos:

  • Use cláusulas de guarda para validar a entrada no início do método
  • Use pattern matching com instanceof para verificar e fazer cast de tipos (ex.: if (value instanceof Integer i))
  • Use expressões switch com sintaxe de seta (ex.: switch (type) -> {)
  • Use loops rotulados com break ou continue (ex.: search: for())

Regras de processamento:

  • "sum": Some todos os valores numéricos (ignore strings)
  • "find": Encontre o primeiro valor numérico maior que 100

As mensagens de retorno devem ser:

  • Se o array for null ou vazio: return "Invalid input"
  • Se o tipo for inválido: return "Invalid type"
  • Para "sum": return "Sum: X"
  • Para "find": return index of found value or "Not found"

Experimente você mesmo

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) {
        // Escreva seu código aqui
    }
    
    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 as lições de Lógica e Fluxo