Menu
Coddy logo textTech

Özet - Akış Kontrolü

Coddy'nin Java Journey'sinin Mantık & Akış bölümünün bir parçası — ders 39 / 59.

challenge icon

Görev

processArray adında iki argüman alan bir metot oluşturun:

  1. Karışık tipler (Integer, String veya Double) içeren Nesnelerin tek boyutlu dizisi (data)
  2. İşleme tipi için bir String (type): "sum" veya "find"

Çözümünüz şu kavramları göstermelidir:

  • Metodun başında girdiyi doğrulamak için guard clause'ları kullanın
  • Tipleri kontrol etmek ve dönüştürmek için instanceof pattern matching kullanın (ör., if (value instanceof Integer i))
  • Ok sözdizimi ile switch ifadeleri kullanın (ör., switch (type) -> {)
  • break veya continue ile etiketli döngüler kullanın (ör., search: for())

İşleme kuralları:

  • "sum": Tüm sayısal değerleri ekleyin (stringleri yoksayın)
  • "find": 100'den büyük ilk sayısal değeri bulun

Dönüş mesajları şöyle olmalıdır:

  • Dizi null veya boşsa: "Invalid input" döndürün
  • Tip geçersizse: "Invalid type" döndürün
  • "sum" için: "Sum: X" döndürün
  • "find" için: bulunan değerin indeksi veya "Not found" döndürün

Kendin dene

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) {
        // Buraya kodunuzu yazın
    }
    
    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));
    }
}

Mantık & Akış bölümündeki tüm dersler