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 1D 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 guard clauses para validar a entrada no início do método
  • Use instanceof pattern matching para verificar e converter tipos (ex: if (value instanceof Integer i))
  • Use switch expressions com a sintaxe de seta (ex: switch (type) -> {)
  • Use loops rotulados (labeled loops) com break ou continue (ex: search: for())

Regras de processamento:

  • "sum": Adicione 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 nulo ou vazio: retorne "Invalid input"
  • Se o tipo for inválido: retorne "Invalid type"
  • Para "sum": retorne "Sum: X"
  • Para "find": retorne "Index: X", onde X é a posição desse valor em data, ou "Not found" se nenhum valor numérico for maior que 100

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