الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

لماذا يظهر هذا الخطأ ؟

بدأه admin_cs في 12 أكتوبر 2008 · 3 رد · 526 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أقوم فى بعض الاحيان بتجربة بعض الاكواد البسيطة والأفكار العادية خروجا عن الملل المهم كنت اكتب كود برنامج المضروب الشهير وكتبت هذا الكود

using System;

  public class FactorialTest
  {
	 public static void Main( string[] args )
	 {

		 Console.WriteLine("Please give me No");
		 int x = int.Parse(Console.ReadLine());
		 int result = Factorial(x);
		 Console.WriteLine("the Fact is :" + result);
	} // end method Main

	// recursive declaration of method Factorial
	public static int Factorial( int number )
	{
	   // base case
	   if ( number <= 1 )
		  return 1;
	   // recursion step
	   else
		  return number * Factorial( number - 1 );
	} // end method Factorial
 } // end class FactorialTest

فظهرت لى هذه الرسالة

اقتباس
Error Use of unassigned local variable 'x'

لماذا ظهرت :angry: ..وما الخطأ أصلا فى الكود . :blush: ..علما ان طريقة اللوب المعتادة لايظهر فيها هذا الخطأ :blink:

وشكرا

تم تعديل هذه المشاركة بواسطة admin_cs في 12 أكتوبر 2008 في 18:36

#2

لما لا تجرب هذا الكود والذي يعطيك Factorial

int input = int.Parse(Console.ReadLine());
			for (int i=input; i>1; input *= --i);

			Console.WriteLine(input.ToString());
			Console.ReadLine();
#3

لان تعريف المتغير ال x كان داخل الmain جرب وضع تعريفة في البداية

حتى ياخذوا مع الfunction

using System;

public class FactorialTest

{

int x;

public static void Main( string[] args )

{

Console.WriteLine("Please give me No");

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

int result = Factorial(x);

Console.WriteLine("the Fact is :" + result);

} // end method Main

// recursive declaration of method Factorial

public static int Factorial( int number )

{

// base case

if ( number <= 1 )

return 1;

// recursion step

else

return number * Factorial( number - 1 );

} // end method Factorial

} // end class FactorialTest

IBF

#4

الان الكود يعمل كما هو ولا حاجة لإعادة تعرييف المتغير x خارج الـ Method صراحة لا افهم لماذا اقترحت ذلك ؟!!!الـscope الذى اريده داخل الـ Main methos فقط .................اعتقد ان سبب الخطأ .ان الفيجول ستوديو كان جائع :)

مواضيع مشابهة