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

[تنبيه - عنوان غير مناسب : ]استفسار عن كود بسيط

بدأه IsuRaMu في 4 يوليو 2010 · 5 رد · 422 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

عندي استفسار عن كود بسيط اظن ان اغلب مبرمجي الجافا المتوسطين يعرفوه

import java.util.Scanner;
public class simple2 {

	public static void main(String[] args){
	Scanner input = new Scanner(System.in);
	int total = 0;
	int grade;
	int average;
	int counter = 10;

	while (counter < 10){

		grade = input.nextInt();
		total = total + grade;
		counter++;
	}{
		average = total/10;
		System.out.println("you average is :"+ average);


	}

	}


}

الكود الي مني فاهمها

counter++

grade = input.nextInt()

وليه حط اربع مجاهيل

int total = 0;

int grade;

int average;

int counter = 10;

وحط القيمة في الاول والاخير صفر

#2

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

اهلا بك...............

counter++

هذة الجملة تقوم بزيادة قيمة المتغير count بمقدار واحد

يعنى اذا كانت قيمة هذا المتغير صقر بعد تنفيذ هذة الجملة تصبح قيمته واحد

و اذا كانت 2 تصبح 3 و هكذا

و عندما نضعها بداخل loop فكل مرة ينفذ فيها ال loop تزيد قيمة المتغير كل مرة بمقدار واحد

grade = input.nextInt()

هذا السطر لاخذ قيمة من المتغير

و لاحظ انك استخدمت الدالة nextInt() لانك ستستقبل قيمة صحيحة او int من المستخدم عن طريق ال console

int total = 0;

هذا المتغير سيحتوى فيما بعد قيمة مجموع درجات الطالب

و عندما تكتب هذا السطر

total = total + grade;

ركز على الطرف الايمن للمعادلة ستجد انك تجمه متغير على متغير اخر

و يجب ان يكون بداخل كل منهما قيمة

انت اذا عرف المتغير total هكذا int total; فقط

البرنامج سيأخذ قيمة rubbish من الذاكرة اى سيأخذ اى قيمة من الذاكرة و بالطبع سيكون الناتج النهائى غير صحيح

int grade;

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

int average;

سنستخدم هذا المتغير لحساب متوسط الدرجات

فى هذا السطر

average = total/10;

int counter = 10;

اعتقد انك اخطأت هنا يجب ان تكون قيمة المتغير صفر

لاننا سنبدأ بالعد من عند الصفر و كل مرة سينفذ فيها ال loop ستزيد قيمة المتغير واحد

و هو يشبه العداد

فقط :wub:

1
00020309t.gif

1958_1963.gif
#3

الأخ الكريم/الأخت الكريمة

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

مرحباً بكم في منتدى الفريق العربي للبرمجة

نود تنبيهك أن العنوان غير مناسب.

الرجاء اختيار عنوان مناسب أكثر في مواضيعك القادمة، وهذا بمثابة إشعار للأهمية.

وفي حال التكرار سيتعرض موضوعك للإغلاق والحذف!!!

قواعد المشاركة

/index.php?showtopic=29343

شاكرين لكم حُسن تعاونكم

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#4
اقتباس
البرنامج سيأخذ قيمة rubbish من الذاكرة اى سيأخذ اى قيمة من الذاكرة و بالطبع سيكون الناتج النهائى غير صحيح

في طبيعة الحال المتغيرات من نوع Primitive Types مثل ال int and boolean and long.... تأخذ قيمة اولية مباشرة فقط اذا كانت متغيرات على مستوى ال class نفسه اي Global (او public على مستوى دوال الصف) 

اما اذا عرّفت داخل دالة

فانها تصبح Inner Variables و بالتالي يجب وضع قيمة مبدئية لها

مثال :

public class TestClass {

    int x;// قيمة المتغير مباشرة صفر

    public void innerVariable() {
        int f = 0;//يجب ان يعطى المتغير قيمة بما انه Inner

        int result = 10 + f;
    }

    public void globalVariable() {
        int result = 10 + x;//لا مشكلة في قيمة x المبدئية
    }
}
1
#5

مداخلة طيبة اخى محمد

فى النت بينز يجبرك على ادخال قيمة للمتغير داخل الدوال :mad:

00020309t.gif

1958_1963.gif
#6

شكرا لك وفعلا القيمة 0 مو 10 بس انا كنت اغير قلت ممكن اعرف ايش المطلوب منها ؟؟؟^^"

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…