Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

مراجعة - تدفق التحكم

جزء من قسم Logic & Flow في رحلة Java على Coddy — الدرس 39 من 59.

challenge icon

التحدي

قم بإنشاء طريقة تسمى processArray تأخذ وسيطين:

  1. مصفوفة أحادية الأبعاد من الكائنات (data) تحتوي على أنواع مختلطة (Integer أو String أو Double)
  2. سلسلة نصية (type) لنوع المعالجة: "sum" أو "find"

يجب أن يوضح حلك هذه المفاهيم:

  • استخدام عبارات الحماية (guard clauses) للتحقق من صحة المدخلات في بداية الطريقة
  • استخدام مطابقة الأنماط مع instanceof للتحقق من الأنواع وتحويلها (على سبيل المثال، if (value instanceof Integer i))
  • استخدام تعبيرات switch مع بناء جملة السهم (على سبيل المثال، switch (type) -> {)
  • استخدام الحلقات المسماة (labeled loops) مع break أو continue (على سبيل المثال، search: for())

قواعد المعالجة:

  • "sum": جمع كل القيم الرقمية (تجاهل النصوص)
  • "find": البحث عن أول قيمة رقمية أكبر من 100

يجب أن تكون رسائل الإرجاع:

  • إذا كانت المصفوفة null أو فارغة: أرجع "Invalid input"
  • إذا كان النوع غير صالح: أرجع "Invalid type"
  • بالنسبة لـ "sum": أرجع "Sum: X"
  • بالنسبة لـ "find": أرجع فهرس القيمة التي تم العثور عليها أو "Not found"

جرّب بنفسك

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));
    }
}

جميع دروس Logic & Flow