עבור לתוכן

שאלה על תאני "וגם" בC#

Featured Replies

פורסם

באיזה סדר המחשב בודק תנאי כאשר יש "וגם"? מיממין לשמאל או משמאל לימין?

לדוגמא אם אני רוצה לבדוק שמחסנית כלשהי לא ריקה וגם לא מופיע בה תו מסוים.

האם אני יכול לכתוב את התנאי כך שלא יקרה מצב שהוא יקרא את התו לפני שהוא יבדוק אם המחסנית לא ריקה?

פורסם

תמיד משמאל לימין, ותמיד הוא מפסיק ברגע שיש לו תשובה מספקת.

כלומר, אם עושים x && y אז x יבדק קודם, ו-y ייבדק רק אם x מחזיר true. גם || עובד באופן דומה (רק הפוך - y ייבדק רק אם x מחזיר false).

הרבה פעמים נהוג להשתמש בזה. לדוגמה, נניח שיש לך משתנה x מטיפוס רשימה (List) ואתה רוצה לבדוק שהוא לא null וגם שהוא לא ריק. אז עושים ככה:

if (x != null && x.Count > 0)

פורסם
  • מחבר

הבנתי, תודה!

ועוד שאלה קטנה, האם אתה יכול להוציא איבר ממחסנית בתתוך תנאי if מבלי לקלוט אותו במשתנה?

לדוגמא ככה:

if ( x == st.pop() ) 

פורסם

מה זאת אומרת? אם אתה שואל האם הקוד שכתבת תקין, אז כן (בהנחה ש-x מהטיפוס המתאים כמובן).

פורסם
  • מחבר

מה זאת אומרת? אם אתה שואל האם הקוד שכתבת תקין, אז כן (בהנחה ש-x מהטיפוס המתאים כמובן).

השאלה שלי היא האם ניתן לשלוף איבר (במקרה פה ממחסנית) מבלי לקלוט אותו?

והאם זה מותר רק בתוך תנאי או גם מחוך לתנאי?

למשל אם אני רוצה להוציא איבר ממחסנית וסתם "לזרוק" אותו כי אין לי שימוש בו.

האם מותר לי לעשות ככה:

st.pop() 

?

או שחייב:

temp = st.pop() 

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים