פקודת goto – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
←‏ירידת קרנה של פקודת goto: Visual C++ היא שפת תכנות כמו שאני שק"ק
שורה 11:
שימוש מופרז בפקודה goto עלול להביא לקוד לא מובנה ולא קריא, המכונה לעתים [[קוד ספגטי]]. כיום, כחלק ממוסכמות תכנות מקצועי, נחשבת פקודת ה-goto מוקצה מחמת מיאוס, וזאת על מנת להקל על תחזוקה והרחבה של קוד קיים: קוד אשר משתמש ב-goto, ולו לעתים נדירות, עלול ליצור תופעות לוואי שקשה לעקוב אחריהן, ומקשה על הבנה של קוד ירושה. מוסכמה זו נאכפת לרוב גם בשפות המאפשרות שימוש ב-goto. עם זאת, במקרים כגון יציאה מקינון מרובה, שימוש ב־goto עשוי להיות הפתרון הנכון.
 
בשפת התכנות [[Visual C++]] ישנו צמד פקודות (setjmp ו-longjmp) שנועד לביצוע goto שאינו מקומי על ידי שמירת מצב ה[[מחסנית (מבנה נתונים)|מחסנית]] לפני הקפיצה ושחזורה לאחריה. בשפות חדשות יותר כמו [[Java]] ו-[[C sharp|#C]] לא ניתן להשתמש בפקודה זו, ב-Java, למשל, ישנה מילת מפתח בשם goto שכל מטרתה היא "נעילת" מילת המפתח, כדי למנוע חזרה לשימוש בה.
 
==דוגמאות שימוש==