שאלות לגבי הנושא WHILE בC# - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

שאלות לגבי הנושא WHILE בC#


lesForce

Recommended Posts

ערב טוב.

יש לי כמה שאלות לגבי הנושא WHILE בתוכנה C#.

דבר ראשון. אני יודע שכשמגדרים מספר ורוצים שהוא ייקלט בתוך השרשרת של הWHILE צריך לאפס אותו - משמע NUM=0.

לדוגמא :

int mark=0,

Console.WriteLine ("Enter your mark: ");

while (mark != 101)

{

mark = int.Parse(Console.ReadLine());

{

אך אם אני רוצה למשל לקלוט תו CHAR בתוך שרשרת הWHILE שבקיצה * אז הוא נותן לי שגיאה. לכן חשבתי אולי לתת למשתנה להיות שווה לסתם תו.

לדוגמא:

char num='K';

Console.WriteLine("Enter A for Alon or B for Beny");

num = char.Parse(Console.ReadLine());

while (num != '#')

{

num = char.Parse(Console.ReadLine());

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

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

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

פשוט יש לי מחר מבחן על הנושא אז אם אפשר לענות לי היום זה יהיה מצויין. תודה מראש :yelclap:

[attachment deleted by admin]

קישור לתוכן
שתף באתרים אחרים

ואו איזה תגובות מהירות ;D תודה...

vkuraso -אנחנו לא למדנו את החומר של DO אז בנתיים אני מעדיף להשתמש רק בWHILE.

ואם אני עושה ככה:

char collect;

Console.WriteLine("Enter A for Alon or B for Beny");

while (collect != '*') ;

{

collect = char.Parse(Console.ReadLine());

}

הוא נותן לי את השגיאה הבאה:

Use of unassigned local variable

אלא אם כן אני אגדיר ש-collect שווה לתו כלשהו שהוא לא * . אז אין בעיה לעשות collect=K (לא חשוב איזה אות , זה סתם דוגמא) וזה יעבוד טוב. אבל נראה לי שזו דרך לא ממש תקינה אז רציתי לשאול מהי הדרך התקינה לעשות את זה.

yousux- מצטער הייתה בעיה עם התמונה - עכשיו ערכתי אני מקווה שהכל בסדר..

ולא הבנתי ממש מה אמרת. מה לעשות ככה:

int.Parse(Console.ReadLine());

אם זו הייתה הכוונה שלך זה לא פועל...

קישור לתוכן
שתף באתרים אחרים

הסיבה לשגיאה היא כי אתה משווה משתנה למשהוא לפני שהכנסת לתוכו איזשהוא משהוא להשוות איתו..

char collect;

Console.WriteLine("Enter A for Alon or B for Beny");

collect = char.Parse(Console.ReadLine());

while (collect != '*') ;

{

collect = char.Parse(Console.ReadLine());

}

קישור לתוכן
שתף באתרים אחרים

פתרון פשוט+-:

string str="";

char collect;

Console.WriteLine("Enter: ");

while(true)

{

collect = char.Parse(Console.ReadLine());

if (collect == '*')

break;

else if (collect == 'Z')

collect = 'A';

else if (collect == 'z')

collect = 'a';

else

collect++;

str += collect;

}

קישור לתוכן
שתף באתרים אחרים

טיפ קטן לכולכם:

תעטפו את הקוד שלכם בטג קוד (כפתור # למעלה) במקום להצמיד לשמאל. ככה הוא ייראה נורמלי.

vkuraso - לא הייתי ממליץ לשים break. זה גורם לקוד להיות פחות קריא (למרות שהוא תקין לחלוטין).

קישור לתוכן
שתף באתרים אחרים

הסיבה לשגיאה היא כי אתה משווה משתנה למשהוא לפני שהכנסת לתוכו איזשהוא משהוא להשוות איתו..

char collect;

Console.WriteLine("Enter A for Alon or B for Beny");

collect = char.Parse(Console.ReadLine());

while (collect != '*') ;

{

collect = char.Parse(Console.ReadLine());

}

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

למדתם על List ?

לא...

פתרון פשוט+-:

string str="";

char collect;

Console.WriteLine("Enter: ");

while(true)

{

collect = char.Parse(Console.ReadLine());

if (collect == '*')

break;

else if (collect == 'Z')

collect = 'A';

else if (collect == 'z')

collect = 'a';

else

collect++;

str += collect;

}

לא למדנו STRUNG וגם לא WHILE ?(TRUE . אלא אם כן הם משתנים ואז יצאתי מפגר ;D

קישור לתוכן
שתף באתרים אחרים

כמו שנאמר מעלה, אסור לך להשתמש בערך של משתנה שלא אותחל.

do+while ןלעשות readline לפני תחילת הלולאה שניהם פתרונות טובים.

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

קישור לתוכן
שתף באתרים אחרים

ארכיון

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

×
  • צור חדש...