מישהו יודע....

ron369

New member
עד כמה שאני יודע,

break יוצא לך מהלולאות. אבל אם אתה בסבך של פונקציות ומחלקות...(לדוגמא רקורסיה).
 
איך break קשור לעניין?../images/Emo4.gif../images/Emo26.gif

break לא תפתור לו את הבעיה... למה אתה מתכוון, משהו כזה?
if (a==5){ break(); }​
כי אם כן אז: 1) break היא לא פונקציה (היא אמורה לבוא בלי סוגריים) 2) הוא ביקש משהו שיעיף אותו מהתוכנית - break ממש לא תעשה את זה...
 

DNile

New member
משום מה לא נראה לי שהצליחו

לדבג אותו מהרגע שהם גילו שיש באג. מה שמזכיר לי... מה מתחיל בשמיים, ונגמר בים?
 

DNile

New member
אבל זאת לא תשובה מצחיקה.

מה מתחיל בשמיים, ונגמר בים?
 

guznik

New member
אם הקוד שלך מכוער כלום לא יעזור

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

DadleFish

New member
לא מדויק,

החוכמה היא לדעת איך להשתמש ביעילות במינימום מהיכולות של השפה - ככה שלא יהיו מקומות לטעויות. למעשה, כמה שהשפה יותר מוגבלת, ככה יש לך פחות באגים. חפש MISRA C.
 

erezsh

New member
כלומר,

לתכנת ב-C במקום C++? אני אומר את זה כבר יובלות!!
 

DadleFish

New member
לא, להיפך

להקיא מ-++C את כל שיטות ה-C המסורתיות כמו GOTO, EXIT, ואפילו SWITCH-CASE בהרבה מקרים.
 

guznik

New member
אה?

איבדתי אותך. מה רע ב-switch-case? מה תשים במקום, if-else-if-else... ענק?
 

voguemaster

New member
זה תלוי

קודם כל, לא עם כל דבר אפשר לשתמש ב-switch. אל תשכח שהוא עובד רק על ערכים בדידים. שנית, יש מצבים שאפשר להימנע מ-switch כי יש שיטה טובה יותר בצורה של ירושה חכמה או איזה design pattern מוצלח. הכל תלוי בצרכים.
 

DadleFish

New member
switch-case הוא לא דבר רע,

אבל הרבה פעמים אפשר להחליף אותו בפולימורפיזם ובדברים אחרים.
 

DNile

New member
בשביל זה המציאו את הExceptions

לבצע "exit" בצורה נכונה.
 

DadleFish

New member
לא רק בשביל זה המציאו אותם

exceptions מחליפים את ה-error code המיושן שאף אחד ממילא לא בודק באמת (רק בדף הזה של הפורום יש מישהו/י שלא בדק אותם).
 

voguemaster

New member
מי לא בודק error code ?

כל מי שמתכנת בסביבה אמיתית בודק error codes. אולי לא כל הזמן אבל באופן עקרוני כן. אני מסכים שצריך יותר. בוא נגיד, לא הרבה מתכנתים יודעים שצריך לבדוק את הערך המוחזר ע"י close כשסוגרים socket. אבל, לא בשביל זה המציאו exceptions. המציאו אותן כדי לתת דרך נקייה לצאת מקטע קוד שיכול להתפקשש. כשאתה מטפל ב-exceptions אתה לא רק תופס את השגיאות אלא גם מאפשר לעצמך לצאת מקטע הקוד הבעייתי בצורה מסודרת, מנקודה אחת|סדש| . זה מאפשר לך לא רק לנקות משאבים שהקצאת בתוך הבלוק (נניח) אלא גם כופה עליך לצאת ממנו בצורה אחת ויחידה. זה מונע את כל הבעיות שנוצרות בפונק' מורכבות עם שימוש עודף ב-returnים ו-exit ו-break וכל החרטא הזה..
 

DadleFish

New member
זה לא בהכרח נכון

מי אמר שאתה מוגבל ל-try-catch אחד בתוך הפונקציה?
 
למעלה