→ חזרו אחורה

פרק 1 - משתנים

⏱ 10 דקות קריאה

1. מהו משתנה?

אז מהו בעצם משתנה? תחשבו על משתנה כעל "קופסה" בזיכרון של המחשב. לכל קופסה כזו אנחנו נותנים שם ייחודי, ובתוכה אנחנו יכולים לאחסן ערך (מידע). בכל פעם שנשתמש בשם של המשתנה בקוד, המחשב ידע לגשת לאותה קופסה ולשלוף את הערך שנמצא בתוכה.

2. איך משתנה בנוי בJava?

אז איך משתנה בנוי ב-Java? ב-Java כמו בהרבה שפות תכנות משתנים מורכבים מ3 חלקים

לדוגמה:

Java

    int age = 25;
    

בואו ננתח את השורה שכתבנו למעלה:

🔹 int – זהו ה-Data Type. אנחנו אומרים למחשב: "הקופסה הזו מיועדת למספרים שלמים בלבד".

🔹 age – זהו ה-Identifier. בחרנו לקרוא לקופסה בשם age כדי שנדע שהיא שומרת את הגיל של המשתמש.

🔹 25 – זהו ה-Value. זה המידע שמונח כרגע בתוך הקופסה.

🔹 ; – אל תשכחו את ה"נקודה-פסיק"! ב-Java, זה כמו נקודה בסוף משפט, זה אומר למחשב שהפקודה הסתיימה.

💡 שימו לב: הסימן = בתכנות נקרא אופרטור השמה. הוא לא אומר ששני הצדדים שווים כמו במתמטיקה, אלא הוא לוקח את הערך שמימין (25) ו"שופך" אותו לתוך המשתנה שמשמאל (age).

3. סוגי משתנים

ב-Java, המשתנים מתחלקים לשתי קבוצות עיקריות: טיפוסים פרימיטיביים (סוגים בסיסיים ופשוטים) ו-טיפוסים מורכבים (כמו מחרוזות טקסט).

הנה ארבעת הסוגים הנפוצים ביותר שבהם נשתמש ב-90% מהזמן:

סוג (Type) מה הוא שומר? מגבלה / טווח דוגמה
int מספרים שלמים מ-2 מיליארד ועד 2 מיליארד (בערך) int pop = 8000000;
double מספרים עשרוניים עד 15 ספרות אחרי הנקודה (דיוק גבוה) double pi = 3.14159;
boolean אמת או שקר רק true או false boolean isLightOn = true;
String טקסט מוגבל רק ע"י זיכרון המחשב (כמעט אינסופי) String text = "Hello!";

מה קורה כשעוברים את המגבלה?

1. במספרים שלמים (int): אם תנסו לשמור מספר גדול מ-2,147,483,647, תצטרכו להשתמש בסוג שנקרא long (שהוא קופסה ענקית למספרים ענקיים).

2. במספרים עשרוניים (double): המגבלה היא בעיקר הדיוק. אם תצטרכו 20 ספרות אחרי הנקודה, ה-double יתחיל "לעגל" את המספר.

3. בטקסט (String): מכיוון שזהו טיפוס מורכב, הוא יכול להחזיק ספרים שלמים של טקסט, כל עוד יש למחשב מספיק זיכרון עבודה (RAM).

🔍 שימו לב להבדל: הסוג String מתחיל באות S גדולה. זה קורה כי הוא לא טיפוס פרימיטיבי "פשוט" אלא אובייקט מורכב יותר (נלמד על זה בהמשך!). שאר הסוגים (int, double, boolean) מתחילים תמיד באות קטנה.

4. האם חייבים לתת ערך מיד?

התשובה היא לא. אפשר להצהיר על משתנה (ליצור את הקופסה) מבלי לתת לו ערך באותו רגע. לפעולה זו קוראים "הצהרה" (Declaration).

Java
  int speed; // הצהרה על משתנה - הקופסה ריקה
  speed = 90; // אתחול (Initialization) - הכנסת ערך בהמשך
⚠️ זהירות - ערכי זבל ושגיאות: ב-Java, אם תנסו להשתמש במשתנה (למשל להדפיס אותו) לפני שנתתם לו ערך, התוכנית לא תעבוד ותקבלו שגיאת קומפילציה. המחשב לא מרשה לכם להשתמש ב"ערך זבל" שנשאר בזיכרון ממקומות אחרים כדי למנוע באגים מסוכנים.

מה זה "ערך זבל"? בעבר, בשפות ישנות יותר, אם הייתם יוצרים משתנה בלי ערך, הוא היה מקבל פשוט את מה שהיה בזיכרון באותו רגע (שאריות מתוכניות אחרות). Java שומרת עליכם ומחייבת אתכם לתת ערך לפני השימוש הראשון.

🎓 זווית הבגרות

איך זה מופיע בבגרות: משתנים הם הבסיס לכל שאלה - כל פתרון כולל הצהרה ואתחול נכונים של משתנים, ובחירת טיפוס לא מתאים יכולה לפסול תשובה שנכונה בהיגיון שלה.

סוג שאלה טיפוסי: לרוב לא נשאלים ישירות "מה זה משתנה" - אלא נדרשים להשתמש נכון בטיפוסים (int/double/boolean/String) בתוך פתרון גדול יותר, כמו צובר סכום או דגל שמסמן שנמצא ערך.

טעות נפוצה: לבחור int כשהתוצאה עלולה להיות עשרונית (למשל ממוצע) - זה גורם לחלוקת שלמים ולתוצאה שגויה, גם אם כל שאר הלוגיקה נכונה.

מה לזכור למבחן: אם יש חלוקה שהתוצאה שלה יכולה להיות עשרונית, בדקו את הטיפוסים המעורבים - לא מספיק שהמשתנה שמקבל את התוצאה יהיה double.

5. תרגול

מה יודפס למסך על ידי הקוד הבא?

Java
int a = 7;
int b = 2;
double result = a / b;
System.out.println(result);

הגדירו משתנה מסוג מספר שלם (int) בשם years והציבו בו את הערך 10.

צרו משתנה מסוג מחרוזת (String) בשם userName והציבו בו את הערך "Alice".

צרו משתנה לערך לוגי (boolean) בשם isJavaFun וקבעו שהוא יהיה true.

הגדירו משתנה int בשם nextYearAge שערכו הוא המשתנה age (שהגדרנו למעלה) ועוד 1.

פרק 0 - הקדמה פרק 2 - קלט ופלט