פרק 1 - משתנים
1. מהו משתנה?
אז מהו בעצם משתנה? תחשבו על משתנה כעל "קופסה" בזיכרון של המחשב. לכל קופסה כזו אנחנו נותנים שם ייחודי, ובתוכה אנחנו יכולים לאחסן ערך (מידע). בכל פעם שנשתמש בשם של המשתנה בקוד, המחשב ידע לגשת לאותה קופסה ולשלוף את הערך שנמצא בתוכה.
2. איך משתנה בנוי בJava?
אז איך משתנה בנוי ב-Java? ב-Java כמו בהרבה שפות תכנות משתנים מורכבים מ3 חלקים
- 1. סוג המשתנה (Data Type): איזה סוג של מידע הקופסה יכולה להכיל? (מספר שלם? טקסט? מספר עשרוני?).
- 2. שם המשתנה (Identifier): הכינוי שבו נשתמש כדי לקרוא למשתנה בהמשך הקוד.
- 3. הערך (Value): המידע האמיתי שאנחנו שומרים בתוך המשתנה.
לדוגמה:
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).
int speed; // הצהרה על משתנה - הקופסה ריקה
speed = 90; // אתחול (Initialization) - הכנסת ערך בהמשך
מה זה "ערך זבל"? בעבר, בשפות ישנות יותר, אם הייתם יוצרים משתנה בלי ערך, הוא היה מקבל פשוט את מה שהיה בזיכרון באותו רגע (שאריות מתוכניות אחרות). Java שומרת עליכם ומחייבת אתכם לתת ערך לפני השימוש הראשון.
🎓 זווית הבגרות
איך זה מופיע בבגרות: משתנים הם הבסיס לכל שאלה - כל פתרון כולל הצהרה ואתחול נכונים של משתנים, ובחירת טיפוס לא מתאים יכולה לפסול תשובה שנכונה בהיגיון שלה.
סוג שאלה טיפוסי: לרוב לא נשאלים ישירות "מה זה משתנה" - אלא
נדרשים להשתמש נכון בטיפוסים (int/double/boolean/String)
בתוך פתרון גדול יותר, כמו צובר סכום או דגל שמסמן שנמצא ערך.
טעות נפוצה: לבחור int כשהתוצאה עלולה להיות
עשרונית (למשל ממוצע) - זה גורם לחלוקת שלמים ולתוצאה שגויה, גם אם כל שאר הלוגיקה נכונה.
מה לזכור למבחן: אם יש חלוקה שהתוצאה שלה יכולה להיות עשרונית,
בדקו את הטיפוסים המעורבים - לא מספיק שהמשתנה שמקבל את התוצאה יהיה double.
5. תרגול
מה יודפס למסך על ידי הקוד הבא?
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.