Menu
Coddy logo textTech

Итоги - управление потоком

Часть раздела Логика и управление потоком путешествия по Java на Coddy. Урок 39 из 59.

challenge icon

Задание

Создайте метод с именем processArray, который принимает два аргумента:

  1. Одномерный массив объектов (data), содержащий значения разных типов (Integer, String или Double)
  2. String (type) для указания типа обработки: "sum" или "find"

Ваше решение должно продемонстрировать следующие концепции:

  • Используйте защитные условия для проверки входных данных в начале метода
  • Используйте сопоставление с образцом instanceof для проверки типов и приведения типов (например, if (value instanceof Integer i))
  • Используйте выражения switch со стрелочным синтаксисом (например, switch (type) -> {)
  • Используйте именованные циклы с break или continue (например, search: for())

Правила обработки:

  • "sum": Сложите все числовые значения (игнорируйте строки)
  • "find": Найдите первое числовое значение, большее 100

Возвращаемые сообщения должны быть следующими:

  • Если массив равен null или пуст: верните "Invalid input"
  • Если тип недействителен: верните "Invalid type"
  • Для "sum": верните "Sum: X"
  • Для "find": верните позицию этого значения в data или "Not found", если числовое значение больше 100 не найдено

Попробуйте сами

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) {
        // Напишите свой код здесь
    }
    
    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));
    }
}

Все уроки раздела Логика и управление потоком

Потренируйтесь самостоятельно: Онлайн-компилятор Java