עבור לתוכן

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

Featured Replies

פורסם

ערב טוב.

יש לי כמה שאלות לגבי הנושא 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]

פורסם

לא אמרת מה התרגיל. בכל מקרה, בקוד שרשמת, עדיף פשוט להריד את num בשורה של ה Parse במקום לפניה וככה לא יהיה לך בעיה.

פורסם

do while גם טוב?

char collect;

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

do

{

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

}

while (collect != '*');

לא ממש הבנתי, אתה רוצה לאסוף אותם לתוך מערך של CHAR?

פורסם
  • מחבר

ואו איזה תגובות מהירות ;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());

}

פורסם

למדתם על 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;

}

פורסם

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

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

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 כמה שאתה יכול, זה גורם לקוד להיות לא ברור ומסובך ומנסיון זה חממת באגים.

פורסם
  • מחבר

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

ארכיון

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

דיונים חדשים