עזרה ב-C++

eshedr

New member
עזרה ב-C++

שלום! כתבתי תוכנית ב-CPP. אני רוצה לקחת את התוכנית ולהריץ אותה מחדש אחרי שהיא כותבת access denied\good. הדרך שאני מכיר היא GOTO אבל המליצו לי בעבר לא להשתמש בדרך זו. מהי הדרך האחרת? אשמח אם תוכלו לצרף לקוד שלי ולהסביר לי אותה. דבר נוסף שהייתי רוצה לדעת זה למה לא כדאי להשתמש ב-GOTO? מה כל כך נורא בזה? תודה eshedr
 
לולאה...../images/Emo26.gif

הפתרון לבעיה שאתה מציג - זה לולאה... להמשיך שוב ושוב בקטע קוד מסויים - עד שמתקיים תנאי כלשהו. לגבי GOTO. תוכנית כמו שאתה יודע מורכבת מאוסף הוראות. סדר ביצוע ההוראות קבוע מראש. אפשר לחלק את סדר ביצוע הפעולות הזה ל-4:
ביצוע סדרתי - כלומר, פקודה אחרי פקודה - אני מניח שאת זה אתה מכיר.
משפט תנאי - כלומר, ביצוע קטע קוד מסויים, רק אם מתקיים תנאי כלשהו.
לולאה - ביצוע קטע קוד מסויים מספר פעמים (מספר קבוע של פעמים או שוב - כפוף לתנאי מסויים)
רוטינה (/שגרה/סברוטינה/פונקציה/פרוצדורה) - ביצוע קטע קוד מסויים, וחזרה למקום ממנו קראנו לו. עם 4 הסוגים האלה, אתה יכול לבצע כל דבר (למען האמת, אפשר גם להסתדר עם פחות מזה). היתרון הוא שקל יחסית לצפות את ההתנהגות של התוכנית, וקל לנתח את פעולתה. מה ש-GOTO עושה - זה לשבור את הרצף ההגיוני של ביצוע התוכנית... הקפיצה ממקום אחד למקום אחר בתוכנית, ללא סדר ברור - יוצרת "קפיצות" בין חלקי-התוכנית שמעקב אחריהם הוא אתגר בלתי-אפשרי. (חפש גם "קוד ספגטי" באותו עניין...)
 
למעלה