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

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