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

استعمال ال class Random

بدأه mr.beshoy في 23 مايو 2011 · 3 رد · 406 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هنا أريد أن أعرض 10 أرقام بطريقة عشوائية بشرط أن يكون الأرقام المعروضة ليس بها تكرار .

أنا عملت طريقة لكن للاسف لم تعمل و هى كالتالى :

أنى بضيف الرقم العشوائى فى List

ثم فى اللفة التالبة نضيف الرقم لل List ثم نتأكد إنه لم يوجد فى ال List ثم نعرضه . أما إذا وجد نحذفه و نقلل قيمة ال counter حتى نجرب رقم آخر .

الشفرة :

--------------

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class MainFrame {

    private int range = 9, num;
    private Random random = new Random();
    private List<Integer> myList = new ArrayList<Integer>();

    public MainFrame() {
        showRandomNumbers(range);
    }

    public static void main(String[] args) {
        new MainFrame();
    }

    private void showRandomNumbers(int range) {
        for (int i = 0; i < range; i++) {
            num = random.nextInt(10);
            myList.add(num);
            if (i == 0) {
                System.out.println(num);
            } else if (myList.contains(num)) {
                myList.remove(i);
                --i;
            } else if (!myList.contains(num)) {
                System.out.println(num);
            }
        }
    }
}

ياريت توضيح الخطأ ال عندى و توضيح الطريقة الصحيحة . شكراً

تم تعديل هذه المشاركة بواسطة mr.beshoy في 23 مايو 2011 في 03:40

#2
Random a = new Random(10);
int i = a.nextInt();

for(int s =0;s<array.length;s++){
if(i == array){
i = a.nextInt(10);
}
}

مع مراعاة أن الـ array يمكن استبدالها بـ arrayList أو الـ list مع تغيير الشرط إلى :

arrayList.get(s)

وكذلك في التكرار :

for(int s=0;s<arrayList.size();s++)

تحياتي

تم تعديل هذه المشاركة بواسطة JavaPorgrammer في 23 مايو 2011 في 06:32

1

عفواً أحبتي انقطاعي بسبب الدراسة دعواتكم بالتوفيق..

{ لا ينال العلم مستحٍ ولا مستكبر }

#3

جرب هذا

private void showRandomNumbers(int range) {
        for (int i = 0; i < range; i++) {
              num = random.nextInt(10);
            while(myList.contains(num)){
                num = random.nextInt(10);
            }
            myList.add(num);
            System.out.println(num );
        }
    }
3

No intellectual battle was ever won through retreat
You do not watch Gintama? Dude, you are missing a lot!


صورةmsrgb1485.gif ocajavase7programmerclr.gif

#4

@mental-driller فهمت الموضوع يمشى كيف ... شكراً لك

@JavaPorgrammer أنا فاهم ما كتبته لكن مش منطبق على مشكلتى ... شكراً

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