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

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

  1. Karışık türler (Integer, String veya Double) içeren 1D nesne dizisi (data)
  2. İşleme türü için bir String (type): "sum" veya "find"

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

  • Metodun başında girişi doğrulamak için koruma ifadeleri (guard clauses) kullanın
  • Türleri kontrol etmek ve dönüştürmek için instanceof desen eşleştirmesi kullanın (örneğin, if (value instanceof Integer i))
  • Ok sözdizimi ile switch ifadeleri kullanın (örneğin, switch (type) -> {)
  • Break veya continue ile etiketli döngüler kullanın (örneğin, search: for())

İşleme kuralları:

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

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

  • Dizi null veya boşsa: "Invalid input" döndürün
  • Tür geçersizse: "Invalid type" döndürün
  • "sum" için: "Sum: X" döndürün
  • "find" için: data içindeki o değerin konumu olan "Index: X" döndürün veya 100'den büyük sayısal değer yoksa "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) {
        // Kodunuzu buraya 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