Menu
Coddy logo textTech

Récapitulatif - Flux de contrôle

Fait partie de la section Logique & Flux du Journey Java de Coddy — leçon 39 sur 59.

challenge icon

Défi

Créez une méthode nommée processArray qui prend deux arguments :

  1. Un tableau 1D d'Objects (data) contenant des types mixtes (Integer, String, ou Double)
  2. Une String (type) pour le type de traitement : "sum" ou "find"

Votre solution doit démontrer ces concepts :

  • Utilisez des clauses de garde pour valider l'entrée au début de la méthode
  • Utilisez le pattern matching instanceof pour vérifier et caster les types (par ex., if (value instanceof Integer i))
  • Utilisez des expressions switch avec la syntaxe flèche (par ex., switch (type) -> {)
  • Utilisez des boucles étiquetées avec break ou continue (par ex., search: for())

Règles de traitement :

  • "sum" : Ajoutez toutes les valeurs numériques (ignorez les chaînes)
  • "find" : Trouvez la première valeur numérique supérieure à 100

Les messages de retour doivent être :

  • Si le tableau est null ou vide : retournez "Invalid input"
  • Si le type est invalide : retournez "Invalid type"
  • Pour "sum" : retournez "Sum: X"
  • Pour "find" : retournez l'index de la valeur trouvée ou "Not found"

Essayez vous-même

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) {
        // Écrivez votre code ici
    }
    
    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));
    }
}

Toutes les leçons de Logique & Flux