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

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

جزء من قسم المنطق وتدفق التنفيذ في رحلة 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"
  • إذا كان type غير صالح: أرجِع "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 عبر الإنترنت