בפיתוח תוכנה משתנה (Variable) הוא אזור זיכרון בתוכנית שמכיל ערך שיכול להשתנות בזמן הריצה. לעומת זאת, קבוע מכיל ערך שאינו משתנה במשך ריצת התוכנית. גודל המשתנה נקבע לפי טיפוסו (טיפוס = סוג הנתונים שמותר לשמור במשתנה), והוא יכול לנוע מבוליאני ותו ועד מערך או אובייקט גדולים. אפשר לבצע על משתנה השמה של ערכים ושליפת מידע ממנו.
למשתנה חייב להיות שם ייחודי. שמות מורכבים מאותיות ומספרים, אבל יש תווים אסורים ומילים שמורות. נהוג לתת שמות משמעותיים שמסבירים את תפקיד המשתנה. יש שיטות שמות שונות, כמו השיטה ההונגרית שמוסיפה קידומות לטיפוס. בשפות מסוימות מופיעים סימני בעלות בשמות, למשל $,@,% ב־Perl. בדורות קודמים השתמשו בשמות קצרים, היום זה נדיר.
חלק מהשפות, כדוגמת C ו־Pascal, מחייבות הכרזה של משתנה לפני השימוש בו. שפות סקריפט רבות מאפשרות הכרזה מרומזת בפעם הראשונה שמשתמשים בשם. נהלים טובים ממליצים להכריז על כל המשתנים, כי זה מקל על איתור שגיאות. יש שפות שמאפשרות את שתי הגישות, ומנהלים יכולים לאכוף הכרזה מפורשת בעזרת מהדרים (כמו use strict ב־Perl).
טיפוס קובע אילו ערכים המשתנה יכול להכיל. טיפוסים נפוצים הם: מספר שלם (Integer), מספר ממשי / נקודה צפה (Floating point), תו (char), מחרוזת (string), מערך, מצביע, רשומה, אובייקט וערך בוליאני (true/false). שפות מסוימות מוסיפות טיפוסים ייעודיים כמו תאריכים או מטבע. ניתן גם להגדיר טיפוסים חדשים על ידי הרכבה או שימוש בתבניות (templates).
אורך החיים הוא הזמן שבו המשתנה קיים בזיכרון. משתנה גלובלי קיים כל זמן שהתוכנית רצה. משתנה מקומי שקוראים לו בתוך פונקציה קיים רק בזמן הרצת אותה פונקציה. יש גם משתנים סטטיים ששומרים על ערכם בין קריאות.
טווח ההכרה (scope) מגדיר איפה בתוכנית אפשר לגשת למשתנה. יש טווח גלובלי שמוכר בכל התוכנית, טווח מקומי לבלוק או שגרה, וטווח דינמי שבו משתנים נגישים באזורים שונים בקוד, לדוגמה בזמן זריקת חריגות.
אתחול הוא מתן ערך התחלתי למשתנה. בשפות כמו C אין אתחול אוטומטי ולעיתים יש "זבל" בזיכרון. בשפות אחרות אתחול אוטומטי נותן ערכים ברורים (למשל אפס למספרים, מחרוזת ריקה למחרוזות). חוסר אתחול נותן גמישות וחוסך פעולות, אך עלול לגרום לבאגים שקשה לאתר.
על משתנה מבצעים שתי פעולות עיקריות: השמה ושליפה. בדוגמה A = B + C, המחשב מושך את הערכים מ־B ומ־C, מחשב את הסכום ומכניס את התוצאה ל־A. סוגי נתונים שונים עלולים לגרום להמרות אוטומטיות או לשגיאות הידור. למשל השמת מחרוזת למשתנה מספרי בדרך כלל תגרום לשגיאה, ואילו השמת שבר למספר שלם עלולה לחתוך את החלק השברתי. משתנים מופיעים גם בתנאים ובקריאות לפונקציות, לדוגמה A = B + MaxOf(C, D).
דוגמאות להכרזה ואתחול משתנה בשם a עם הערך 5 בשפות שונות:
Var a: Integer = 5; (Pascal)
int a = 5; (C / C++)
Dim a As Integer = 5 (Visual Basic)
var num = 567 (JavaScript)
let greet = 'Hello World' (JavaScript מודרני)
משתנה הוא מקום בזיכרון של המחשב שמחזיק ערך שיכול להשתנות בזמן שהתוכנית רצה. זיכרון זה הוא המקום שבו המחשב שומר נתונים. קבוע שונה ממשתנה כי הערך שלו לא משתנה.
לכל משתנה צריך שם. שמות יכולים להכיל אותיות ומספרים. יש תווים אסורים ומילים שלא משתמשים בהם.
שמות טובים ומסבירים מקלים על הבנת התוכנית.
בכמה שפות חייבים להכריז על המשתנה לפני השימוש. זה נקרא הכרזה. בשפות אחרות המחשב יוצר את המשתנה אוטומטית כשמזהה את השם.
טיפוס הוא סוג המידע שאפשר לשים במשתנה. לדוגמה: מספר שלם, מספר עם נקודה (שבר), תו או מחרוזת. טיפוס קובע גם את המקום בזיכרון.
אורך החיים הוא כמה זמן המשתנה קיים. משתנה גלובלי קיים כל זמן שהתוכנית רצה. משתנה מקומי קיים רק בזמן שהפונקציה רצה.
טווח ההכרה אומר איפה בתוכנית אפשר להשתמש במשתנה. יש טווח גלובלי וטווח מקומי.
אתחול זה לתת למשתנה ערך התחלתי. בשפות מסוימות יש אתחול אוטומטי, ובאחרות יש "זבל" בזיכרון עד שמתחילים את המשתנה.
על משתנה עושים השמה של ערכים ושליפה מהם. בדוגמה A = B + C המחשב לוקח את הערכים ב־B וב־C, מחשב את הסכום ושומר אותו ב־A. לפעמים המחשב ממיר בין סוגים באופן אוטומטי, ולפעמים יש שגיאה.
Pascal: Var a: Integer = 5;
C/C++: int a = 5;
JavaScript: var num = 567
let greet = 'Hello World'
תגובות גולשים