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

كيف ارجع الloop من الاول عند تحقق الشرط؟؟؟

مغلق
بدأه aharoon111 في 12 أغسطس 2007 · 6 رد · 648 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

Random r = new Random(1);

int [] y=new int[16];

for (int i=0; i<16; i++)
{
int z= r.nextInt(15);
int count=0;
for (int j=0; j<16; j++)
{
if (z==y[j])
{
z= r.nextInt(15);
goto 267;
}
}
y=z;
}

عايز اغير السطر goto 267; عشان يبدأ نفس اللوب من الاول يعني المطلوب يكون رقم عشوائي و بتاكد انه مش موجود في المصفوفه لو كان موجود يكون رقم جديد و يتاكد تاني من المصفوفه انه مش موجود ازاي اخليه يرجع تاني االلووب من الاول؟؟

#2

استخدم بدلاً من كلمة goto كلمة continue

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

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

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

728x90.png

#3

من ما فهمت ان وظيفة الكود هي توليد الارقام من صفر الى 15

بدون المحافظة على الترتيب ....!

اذا كان فهمي لوظيفة الكود صحيحة فيمكنك تعديل الكود لتتخلص من لخبطة for و if

الى هذا الكود

	public static void main(String args[]) {		
		ArrayList arrayList=new ArrayList();
		for(int i=0; i<16; ++i){
			arrayList.add(new Integer(i));
		}
		Collections.shuffle(arrayList);

		Object[]numbers=arrayList.toArray();

		System.out.println("SIZE  =  "+arrayList.size());			
		for(int i=0; i<arrayList.size(); i++)System.out.println(arrayList.get(i));
	}

وهذا الكود سيفيدك اذا كنت لا تريد حصر الارقام التي سينتجها الكلاس Random

	public static void main(String args[]) {		
		Random r = new Random(1);
		HashSet<Integer> hashSet=new HashSet<Integer>();
		while(hashSet.size()<16){
			hashSet.add(r.nextInt());
		}
		Object[]numbers=hashSet.toArray();

		for(Integer i:hashSet)System.out.println(i);
		System.out.println(hashSet.size());
	}
#4

انا عايز عند تحقق الشرط يولد رقم جديد و يرجع يبدا اللوب من الاول يعني على افتراض انه ولد الرقم 10 يتاكد انه مش موجود في المصفوفه لو كان موجود يولد رقم جديد و يرجع يتاكد انه مش موجود في المصفوفه والارقام العشوائيه محدوده من 1 الى 16 فقط و الغرض من البرنامج اكون مصفوفه تتكون من الارقام من 1 الى 16 بدون تكرار و بطريقه عشوائيه لاني ساحتاج ان تتغير ترتيب الارقام كل مرة اشغل البرنامج او اربط الموضوع بزرار عند الضغط عليه يغير ترتيب الارقام في المصفوفه

#5

هل في طريقه اني اضع رقم للسطر وو عند تحقق الشرط استخدم الامر goto linenumber

#6

جرب الكود الاول الذي ارفقته فهو يحقق الهدف الذي تريد

وكلما اردت اعادة الترتيب استخدم الطريقة

Collections.shuffle(arrayList)

كما يمكنك تحويل المصفوفة Object

الى int ببساطة

تم تعديل هذه المشاركة بواسطة ali7876 في 13 أغسطس 2007 في 15:23

#7

شكرا على سرعة الرد و جاري التجربه

هذا الموضوع مغلق.

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