Resumo - Fluxo de Controle
Parte da seção Lógica e Fluxo do Journey de Java da Coddy — lição 39 de 59.
Desafio
Crie um método chamado processArray que recebe dois argumentos:
- Um array 1D de Objects (
data) contendo tipos mistos (Integer, String ou Double) - 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
1Arrays Multidimensionais
Básicos de Arrays 2DAcessando Elementos de Arrays 2DLoops Aninhados com Arrays 2DResumo - Arrays 2DAdição e Subtração de MatrizesArrays EscalonadosArrays 3D e AlémPadrões Comuns de Arrays 2DResumo - Tudo Sobre Arrays2HashMap Parte 1
O que é um HashMap?Declarar um HashMapAcessando ValoresVerificar se a Chave ExisteModificando DicionáriosResumo - HashMap3HashMap Parte 2
Métodos do HashMapIterar com keySet()Iterar com entrySet()HashMap AninhadoResumo - Gerenciar ArmazémResumo - Operações do HashMap6Fluxo de Controle Avançado
Declarações RotuladasExpressão SwitchCorrespondência de PadrõesCláusulas de GuardaResumo - Fluxo de Controle9Projeto - Contador de Palavras Únicas
Entrada e Armazenamento de TextoProcessamento de Palavras