Menu
Coddy logo textTech

סיכום – זרימת בקרה

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Java של Coddy. שיעור 39 מתוך 59.

challenge icon

אתגר

צרו מתודה בשם processArray שמקבלת שני ארגומנטים:

  1. מערך חד־ממדי של אובייקטים (data) המכיל טיפוסים מעורבים (Integer, String או Double)
  2. מחרוזת (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 אונליין