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

سؤال حول تخزين رقم بعد الخروج من loop

بدأه مبتدى بايثون في 7 ديسمبر 2014 · 4 رد · 1,659 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

 

لدي الكود التالي يحتوي على for loop تقوم بإجراء عملية حسابية ثم يقوم بطباعة في كل مرة بعد عدة مرات من تكرار الطباعة سوف يكون الناتج 532815 لكن هذا الناتج لأن يظهر أذا كنت كتبت جملة الطباعة خارج for loop بل سوف يكون الناتج فقط 15

 

السؤال كيف أقوم بحفظ الناتج 532815 في متغير بحيث يمكنني استخدامه خارج عملية التكرار بحيث أذا أستخدمت جملة الطباعة خارج for loop سوف يعطي نفس ناتج عند الاستخدام داخل loop

    

public static void main(String[] args) {

int a =51;
int x=2;
int y=0;
for (;a>=10;)
 {
y=a+x;
 a=a-a/2;
 a=a;
  System.out.print(y);

}       
 }   
}

ناتج الكود السابق لا يساوي ناتج  الكود التالي , المطلوب هو معرفة كيف يمكنني تخزين ناتج الكود السابق في متغير بحيث يمكنني طباعة و أستخدام ذلك المتغير خارج for loop

public static void main(String[] args) {

int a =51;
int x=2;
int y=0;
for (;a>=10;)
 {
y=a+x;
 a=a-a/2;
 a=a;


}    
  System.out.print(y);   
 }   
}

شكراً

تم تعديل هذه المشاركة بواسطة مبتدى بايثون في 7 ديسمبر 2014 في 19:38

#2

لا لا يا عزيزي الناتج لن ولم يتغير انما انت تستخدم جملة الطباعة بشكل خاطى

public static void main(String[] args) {


int a =51;
int x=2;
int y=0;
while (a>=10)
{
y=a+x;
a=a-a/2;
System.out.println(y);}
System.out.println(y);      
}

هذا الكود بعد التعديل

انت عندما تستخدم جملة الطباعة داخل الحلقة loop  فهي سوف تقوم بطباعة النتيجة كل مرة ولكنك استخدمت print اي طبع النتائج في سطر واحد فيظهر لك 532815  لكنها ليست قيمة المتغير y  النهائية انما هي قيمة المتغير في كل مرة تجري عليها حسابات الحلقة loop سواء while  او for  ويقوم بطبع النتيجة لدى كل مرور بالحلقة ولان الحلقة سوف يتم تنفيذها 3 مرات فسيكون هناك ثلاثة نتائج الاولى 53 والثانية 28 والثالثة 15 ولانهم يطتبوا في سطر واحد فسيكتبون في سطر واحد وهذا ما ولد الشك والريبة لديك انما لو استخدمت println اي كتابة كل نتيجة في سطر فعندها سيطبع النتائج الثلاثة كل في سطر واحد

وبكل الأحوال النتيجة النهائية للمتغير y لن تتغير مهما كانت جملة الطباعة او حتى لو لم تستخدم جملة الطباعة سوف تكون النتيجة النهائية هي 15

 

ملاحظات :

الأفضل بالشكل الذي استخدمته استخدام الـ while بدل الـ for  اللهم الا اذا كان استخدامك للـ for بشكلها الأمثل يعني هكذا

for(int x =0; x >=10; x++)

يعني يتم تعريف المتغير ووضع الشرط والعملية التي سوف تحدد التغير الذي سوف يحدث للمتغير سواء زيادة او نقصان او خلاف ذلك

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

طبعا بالنهاية النتيجة سوف تكون أفضل لكنها مجرد نصيح لتنسيق الكود ليكون اسهل للقراءة والصيانة

 

الملاحظة الثانية وهي 

انه في كودك قمت بكتابة الشرط التالي  a=a وهو ما لا فائدة منه ولا يقوم باي دور او تغير او اي شيء فقمت بحذفه

 

اتمنى لك التوفيق والنجاح

إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً         فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ


 


 


رسم المخططات البيانية بواسطة الجافا


 


كتاب تحليل وتصميم نظم المعلومات


#3

أشكرك أخي العزيز على التوضيح

 

لكن أنا أريد الاحتفاظ بهذه القيمة 532815 في متغير أنا أعرف بأن هذه القيمة ليست قيمة واحد بل هي مكونة من ثلاث خانات 53 و 28 و 15 لكن أنا أريدهم أن يكونوا في شكل 532815 ثم أقوم بتخزين هذه القيمة كقيمة واحدة في متغير واحد بحيث أستطيع أجراء عمليات حسابية على هذه كعدد واحد

 

شكراً لك

#4

حسناً اخي رغم ان طلبك غريب لكن هذا هو الحل

	public static void main(String[] args) {


		int a =51;
		int x=2;
		int y=0;
		String temp= "";
		
		while (a>=10){
		y=a+x;
		a=a-a/2;

		temp = temp + String.valueOf(y);
		System.out.println(temp);
		
		}
		int result = Integer.parseInt(temp);
		System.out.println( "The final Result " + result);      
		}

المتغير result  من نوع int  يحوي القيمة التي تريدها

 

بالتوفيق

إذا نظــرتَ نيـوب اللـّيـثِ بـارزةً         فـلا تظــنَنَ أَنَّ اللـّيـــثَ يبْتسـِـــمُ


 


 


رسم المخططات البيانية بواسطة الجافا


 


كتاب تحليل وتصميم نظم المعلومات


#5

جزاك الله خير وشكراً لك على المساعدة

 

أسأل الله لك التوفيق في الدنيا و الآخرة

 

تحياتي

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