עבור לתוכן

switch ב בc# - איך משתמשים ב integer

Featured Replies

פורסם

היי.

1. למה אני חייב לעשות המרה ממחרוזת לשלם בקליטת משתנה (אחרת הקומפיילר רושם: cannot implicitly convert type 'string' to 'int')?

2. איך אני יכול להשתמש ב case בשביל משהו כמו: אם הערך בין 90-99 (או בין כל טווח אחר של מספרים)?

השאלות שלי נבעו מתוכנית פשוטה שרציתי לעשות:



int grade;
//commented out// string gradeString;

//gets the user's grade in math
Console.Write("Enter your math grade: ");
grade = Console.ReadLine();
//commented out// gradeString = Console.ReadLine();
//commented out// grade = Convert.ToInt32(gradeString);

//creates some blank lines
Console.WriteLine();
Console.WriteLine();

//checks the user's grade and respondes respectively
switch (grade)
{
case 100: //the user's math grade is 100
Console.WriteLine("You're a genius!");
break;
default:
Console.WriteLine("{0} Huh? I guess you can do better than that", grade);
break;
}

//creates some blank lines
Console.WriteLine();
Console.WriteLine();

//holds for users response
Console.WriteLine("Please press \"Enter\" to exit");
Console.ReadLine();

פורסם

1. מכיוון שאתה בודק ב SWITCH -אינטג'רים ולא סטרינגים.

2.אתה לא, תשתמש ב IF.

זה כל הקטע ב SWITCH(CASE) שזה מקרה מאוד ספציפי.

פורסם
  • מחבר

1. מכיוון שאתה בודק ב SWITCH -אינטג'רים ולא סטרינגים.

2.אתה לא, תשתמש ב IF.

זה כל הקטע ב SWITCH(CASE) שזה מקרה מאוד ספציפי.

בקשר ל 1:

אני מתכוון שגם באופן כללי, למה בכל קליטה של שלם אני צריך לכתוב


someInteger = Convert.ToInt32(Console.ReadLine());

בשפות אחרות לא זכור לי שצריך לעשות את זה, אלא אפשר לעשות פשוט:


someInteger = Console.ReadLine();

ללא ההמרה

+

איך אני גורם לתוכנה שלי לא לקרוס אם המשתמש הכניס סוג קלט שגוי (נגיד הכניס מספר עשרוני או אות במקום להכניס מספר שלם), מבלי להשתמש במשתנה מסוג מחרוזת בקליטה, והמרת המחרוזת למשתנה מסוג אינטג'ר? (אני יוצא מנקודת הנחה שהמשתמש ממש טיפש + אני רוצה לחסוך במשתנים ולא ליצור משתנים חדשים על ימין ועל שמאל)

בקשר ל 2:

בטוח? אאל"ט בפסקל היה אפשר לעשות את זה..

פורסם

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

פורסם

1) בC# יש המרות אוטו רק למישהו שירשת ממנו. אין המרות אוטו כדי למנוע שגיאות לוגיות כבר בזמן הקומפילציה. אם באמת אתה רוצה שזה יהייה INT\ לא יזיק לכתוב את ההמרה.

2) אתה יכול לחלק את המספר שלך ב- 10, לעגל, ולראות אם יצא 9. בנוסף, מכיוון שהCASEים גולשים מCASE אחד לאחר, אתה יכול לעזות משהו כזה:

case 90: case 91: case 92: ...

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

ומשתנה אחד לא יהרוג אותך. זה לא כאילו אתה יוצר מערך.

ארכיון

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

דיונים חדשים