סיכום – זרימת בקרה
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Java של Coddy. שיעור 39 מתוך 59.
אתגר
צרו מתודה בשם processArray שמקבלת שני ארגומנטים:
- מערך חד־ממדי של אובייקטים (
data) המכיל טיפוסים מעורבים (Integer, String או Double) - מחרוזת (
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מערכים רב־ממדיים
יסודות מערכים דו־ממדייםגישה לאיברים במערך דו־ממדילולאות מקוננות עם מערכים דו־ממדייםסיכום — מערכים דו־ממדייםחיבור וחיסור מטריצותמערכים מדורגיםמערכים תלת־ממדיים ומעבר להםתבניות נפוצות במערכים דו־ממדייםסיכום — כל מה שצריך לדעת על מערכיםתרגלו בעצמכם: קומפיילר Java אונליין