Menu
Coddy logo textTech

Powtórzenie — przepływ sterowania

Część sekcji Logika i przepływ sterowania ścieżki Java w Coddy. Lekcja 39 z 59.

challenge icon

Wyzwanie

Utwórz metodę o nazwie processArray, która przyjmuje dwa argumenty:

  1. Jednowymiarowa tablica obiektów (data) zawierająca różne typy (Integer, String lub Double)
  2. String (type) określający typ przetwarzania: "sum" lub "find"

Twoje rozwiązanie powinno demonstrować następujące zagadnienia:

  • Użyj klauzul ochronnych, aby sprawdzić poprawność danych wejściowych na początku metody
  • Użyj dopasowywania wzorców instanceof, aby sprawdzać i rzutować typy (np. if (value instanceof Integer i))
  • Użyj wyrażeń switch ze składnią strzałkową (np. switch (type) -> {)
  • Użyj etykietowanych pętli z break lub continue (np. search: for())

Zasady przetwarzania:

  • "sum": Dodaj wszystkie wartości liczbowe (ignoruj ciągi znaków)
  • "find": Znajdź pierwszą wartość liczbową większą niż 100

Zwracane komunikaty:

  • Jeśli tablica ma wartość null lub jest pusta: zwróć "Invalid input"
  • Jeśli typ jest nieprawidłowy: zwróć "Invalid type"
  • Dla "sum": zwróć "Sum: X"
  • Dla "find": zwróć pozycję tej wartości w data lub "Not found", jeśli żadna wartość liczbowa nie jest większa niż 100

Spróbuj swoich sił

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) {
        // Napisz tutaj swój kod
    }
    
    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));
    }
}

Wszystkie lekcje w sekcji Logika i przepływ sterowania

Poćwicz samodzielnie: Kompilator Java online