עבור לתוכן

לולאות for ב#C

Featured Replies

פורסם

כתבתי משפט for ומשום מה הוא כותב לי שגיאה.

זה הקוד


{
}
 for (int t1,t2,t3,t4,a=0;t1!=13;)

וזאת השגיאה

use of unassigned local variable 't1'

אשמח אם תוכלו לעזור לי.

  • תגובות 37
  • צפיות 3.4k
  • נוצר
  • תגובה אחרונה
פורסם
  • מחבר

למה לא? הרי אתחלתי את כולם ל0, לא?

פורסם
  • מחבר
לא, אתחלת רק את a.

זאת אומרת בשביל לאתחל את כולם אני צריך לכתוב כך?:

 

[LEFT]for (int t1=0,t2=0,t3=0,t4=0,a=0;t1!=13;)[/LEFT]


פורסם
  • מחבר

תודה רבה.

:xyxthumbs:

פורסם

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

פורסם

כדאי שתישם לב גב לעדכן את T1 בתוך גוף הלולאה כי אתה לא מעדכן אותו בהגדרת הלולאה.

פורסם
  • מחבר
למה אתה מאתחל משתנים בלולאה? רק האינדקס של הלולאה צריך להיות מאותחל שם למען הסדר הטוב.

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

בכל אופן תודה

כדאי שתישם לב גב לעדכן את T1 בתוך גוף הלולאה כי אתה לא מעדכן אותו בהגדרת הלולאה.

כן, אני מאתחל אותו שם ע"י משפט תנאי (if).

תודה

פורסם
  • מחבר
אז תכריז עליהם בתוך​ הלולאה.

אני צריך אותם גם בתור מונה (אם הif אמת הם עולים באחד (;++t1)), ואם אני ישים אותם בתוך הלולאה הם כל פעם יאותחלו מחדש ואני לא אוכל להשתמש בהם בתור מונה.

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

אחד הדברים היפים בלולאות for הוא שאפשר לעשות שם דברים לא סטנדרטיים כאלה.

למשל - נגיד שיש לך קטע קוד שעושה דברים עם אובייקט מטיפוס X, ושיש בדיוק שני אובייקטים שעליהם אתה צריך לבצע את הקוד הנ"ל. אפשר להוציא את הקטע לתוך פונקציה נפרדת ולקרוא לה פעמיים, או שאפשר לעשות משהו כזה:


for (int i=0, X x=x1 ; i<2 ; i++, x=x2)
{
...
}

וכמובן הדרך הנכונה ( :P ) להגדיר לולאות אינסופיות:


for(;

פורסם

במקרה של לבצע את אותה פעולה על שני משתנים, עדיף להגדיר מערך ולעבור עליו ב-foreach.

פורסם

לפותח הטרד, לולאת for מעולה לקיצור ביטויים, אבל כשמעמיסים עליה יותר מדי, היא מתחילה לבלבל כשפתאום צריך לחזור ולשנות או לתקן משהו.

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

אם התחלנו על קיצורים, יש לך if מקוצר, לדוגמה: expres ? a : b

כלומר אם expressions הוא נכון, תבצע את a, אחרת תבצע את b.

ארכיון

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

דיונים חדשים