مراجعة - تدفق التحكم
جزء من قسم Logic & Flow في رحلة Java على Coddy — الدرس 39 من 59.
التحدي
قم بإنشاء طريقة تسمى processArray تأخذ وسيطين:
- مصفوفة أحادية الأبعاد من الكائنات (
data) تحتوي على أنواع مختلطة (Integer أو String أو Double) - سلسلة نصية (
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
1المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفات ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادجمع وطرح المصفوفاتالمصفوفات المتعرجة (Jagged Arrays)المصفوفات ثلاثية الأبعاد وما بعدهاأنماط المصفوفات ثنائية الأبعاد الشائعةمراجعة - كل شيء عن المصفوفات2HashMap الجزء الأول
ما هو الـ HashMap؟تعريف الـ HashMapالوصول إلى القيمالتحقق من وجود المفتاحتعديل القواميسملخص - HashMap3HashMap الجزء الثاني
دوال HashMapالتكرار باستخدام keySet()التكرار باستخدام entrySet()HashMap متداخلمراجعة - إدارة المستودعمراجعة - عمليات HashMap6التحكم المتقدم في تدفق البرنامج
العبارات المعنونةتعبير Switchمطابقة الأنماطجمل الحمايةمراجعة - تدفق التحكم