עבור לתוכן

בעיה קטנה לולאות for בC#

Featured Replies

פורסם

יש לי בעיה קטנה בתרגיל הזה

 using System;

class Program
{
static void Main(string[] args)
{
const double MILE = 1.6;
double sum;
sum = 0;
int i;
Console.WriteLine("enter the number {0}",i);
i= int.Parse(Console.ReadLine());
for (i = 1; i < 20; i = i + 1)
{
sum = MILE * i;
Console.WriteLine("the sum is {0}", sum);
}
}
}

הקומפיילר רושם: Error 1 Use of unassigned local variable 'i'l

מישהו יודע מה הבעיה?

  • תגובות 30
  • צפיות 3k
  • נוצר
  • תגובה אחרונה
פורסם

הקומפיילר מזהיר אותך שיצרת את num בלי לשים בו ערך, ואחר כך אתה ניגש אליו (שורה אחר כך).

לא הבנתי למה אתה מדפיס אותו בכלל.

ואין קשר ללולאה. שים לב שהקומפיילר אומר לך באיזו שורה הבעיה.

פורסם
  • מחבר

אני יודע שאין קשר ללואה וערכתי השתמשתי ב-i במקום ב-num הבעיה זהה

פורסם

זו אותה הבעיה! עכשיו במקום שאתה מדפיס את num בלי לשים בו ערך, אתה מדפיס את i בלי לשים בו ערך.

פורסם
  • מחבר

I הוא הקלט שלי Console.WriteLine("enter the number {0}",i);

אני מכניס 6את הערך אני לא ממש מבין למה אתה מתכוון

פורסם

הפונקציה WriteLine רק מדפיסה. לא קולטת כלום.

הפונקציה ReadLine היא זו שקוראת.

פורסם
  • מחבר

והכנסתי את שתי הפונקציות

אני באמת לא מבין למה אתה מתכוון בהכנסת ערך כי אני הרי מכניס ערך והפונקציה ReadLine קוראת את הערך ומציגה אותו

פורסם

בשורה הזו:

int i;

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

בשורה הבאה:

Console.WriteLine("enter the number {0}",i);

ניסית להדפיס את הערך של i. כיוון שאין לו ערך הקומפיילר צועק עליך (ליתר דיוק הערך שלו 0, אבל הקומפיילר זוכר שלא אתחלת אותו בעצמך, ולכן מונע ממך להשתמש בו).

רק בשורה שאחרי כן:

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

אתה שם ב-i ערך אמיתי.

פורסם
  • מחבר

אוקיי תודה רבה הסתדרתי עכשיו ההסבר עזר לי מאוד!

ובסוף בכלל לא היה לי צורך בהכנסת ערך ל-I

:lol: :lol: :s07::kopfpatsch:

פורסם
  • מחבר

אוקיי יש לי בעיה בעוד תרגיל מצטער

 using System;

class Program
{
static void Main(string[] args)
{
int i, num, sum;
sum = 0;
for (i = 1; i <= 50; i = i + 1)
{
Console.WriteLine("enter the num");
num = int.Parse(Console.ReadLine());
}
if (num < 10)
{
sum = sum + num;
Console.WriteLine("the sum is {0}", sum);

}
}

}

הקומפיילר רושם: Error 1 Use of unassigned local variable 'num'

כן אותה הבעיה אבל הפעם הכנסתי ערך שהוא לא אפס

פורסם

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

פורסם
  • מחבר

 using System;

class Program
{
static void Main(string[] args)
{
int i, num, sum;
sum = 0;
Console.WriteLine("enter the num");
num = int.Parse(Console.ReadLine());
for (i = 1; i <= 50; i = i + 1)
{
if (num < 10)
{
sum = sum + num;
Console.WriteLine("the sum is {0}", sum);
}



}
}

}

תודה הסתדרתי!

פורסם

משהו עדיין לא מסתדר שם (עכשיו אתה קולט מס' ומוסיף אותו לסכום 50 פעם). מה התוכנית אמורה לעשות?

פורסם
  • מחבר

התכנית אמורה לקלוט רשימה של 50 מספרים ולהציג כפלט את סכום המספרים הקטנים מ-10

ארכיון

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

דיונים חדשים