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