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

תוכן שנמחק תוכן שנוסף
בהחלט ניתן להשתמש בפקודה בשפת סישארפ
מ ←‏ירידת קרנה של פקודת goto: תיקון קישור, הגהה
שורה 9:
שימוש מופרז בפקודה goto עלול להביא לקוד לא מובנה ולא קריא, המכונה לעתים [[קוד ספגטי]]. כיום, כחלק ממוסכמות תכנות מקצועי, נחשבת פקודת ה־goto מוקצה מחמת מיאוס, וזאת על מנת להקל על תחזוקה והרחבה של קוד קיים: קוד אשר משתמש ב־goto, ולו לעתים נדירות, עלול ליצור תופעות לוואי שקשה לעקוב אחריהן, ומקשה על הבנה של קוד ירושה. מוסכמה זו נאכפת לרוב גם בשפות המאפשרות שימוש ב־goto. עם זאת, במקרים כגון יציאה מקינון מרובה, שימוש ב־goto עשוי להיות הפתרון הנכון (במקרים כאלו ניתן להשתמש בשפות תכנות חדשות במנגנון ה[[טיפול בשגיאות]] על מנת להשיג תוצאה דומה).
 
ברוב השפות שתומכות ב[[תכנות פרוצדורלי]] ומאפשרות שימוש בפקודת goto לא ניתן לקפוץ מחוץ לשגרה הנוכחית. בשפת [[C]] ישנו צמד פנקציותפונקציות (<code>setjmp</code> ו־<code>longjmp</code>) שנועד לביצוע goto שאינו מקומי על ידי שמירת מצב ה[[מחסנית (מבנה נתונים)|מחסנית]] לפני הקפיצה ושחזורה לאחריה.
 
בשפות חדשות יותר כמו [[Java]] לא ניתן להשתמש בפקודה זו, ב־Java, למשל, ישנה מילת מפתח בשם goto שכל מטרתה היא "נעילת" מילת המפתח, כדי למנוע חזרה לשימוש בה.