Merhaba arkadaşlar bu dersimizde
Javada random olarak belli bir sayıya kadar olan sayıları karıştıracağız.Bu bizim
işimize nerede yarayacak diye düşünürseniz örneğin android de resimlerin karışık
olarak gelmesini istiyoruz ve bizim 500 tane resmimiz var biz bunun karışık
gelmesini sağlamak için 1 den 500 e kadar olan sayıları karışık olarak rasgele
her sayı 1 kez olacak şekilde sıralıyoruz ve bu sayıları bir dizide tutarak
resimleri oluşturduğumuz id dizi içinden çağırabiliriz.Böylece resimler resgele
gelmiş olur.
öreneğin :
int index=0;
if(index>500)
index=0;
else
{
relativeLayoutum.setBackgroundResource(resimlerID[RandomSayilar[index]]);
index++
}
if(index>500)
index=0;
else
{
relativeLayoutum.setBackgroundResource(resimlerID[RandomSayilar[index]]);
index++
}
Sorusec adında dizi oluşturuyoruz ve boyutunu 20 yapıyoruz.
Daha sonra ilk random sayımızı üretekek sayi değişkenine
atıyoruz.Oluşturduğumuz bu sayıyı da random sayıları tutucak Sorusec dizisinin
ilk elemanına atıyoruz bunu for döngülerinin dışında yapmamızın sebebi sonradan
oluşturulacak sayıların aynımı değil mi diye karşılaştırılması için bir
ilk değere ihtiyacımızın olmasıdır.
public class ras {
public static void main(String arg[]){
int sayi,Sorusec[]=new int[20];
Sorusec[0] = 0;
public static void main(String arg[]){
int sayi,Sorusec[]=new int[20];
Sorusec[0] = 0;
Burada ise iç içe iki tane for döngüsü kullanıyoruz.İlk for döngümüzu ikinci elemandan
başlatıyoruz çünkü dizinin ilk elemanı üste atamıştık.Sonra yine random bir sayı üreterek sayı değişkenimize atıyoruz.
for (int i = 1; i < 20; i++) {
sayi = (int) (Math.random() * 20);
for (int i = 1; i < 20; i++) {
sayi = (int) (Math.random() * 20);
İkinci for dongumuzde ise üretilen random sayıları önceki tüm üretilen
sayılarla karşılaştırıyoruz.Eğer üretilen yeni sayı önceki üretilen random
sayılara eşitse tekrar bir random sayı üreterek sayi değişkenine atıyoruz taki
farklı bir random sayı bulana kadar eğer tüm önceki elemanları dolaşıp aynı
sayı bulamazsa en son olarak bu üretilen random sayıyı Sorusec dizimize
atıyoruz.
for (int j = 0; j <= i; j++) {
if (Sorusec[j] == sayi) {
sayi = (int) (Math.random() * 20);
j=0; }
}
Sorusec[i] = sayi;
}
if (Sorusec[j] == sayi) {
sayi = (int) (Math.random() * 20);
j=0; }
}
Sorusec[i] = sayi;
}
Bu alttaki for dongu ile de üretilen birbirinden farklı 20 sayıyı
ekran yazdırıyoruz
for (int j = 0; j < 20; j++) {
System.out.println(Sorusec[j]+" ");
}
}
}
System.out.println(Sorusec[j]+" ");
}
}
}
Tüm kodlar:
public class ras
{
public static void main(String arg[])
{
int sayi,Sorusec[]=new int[20];
Sorusec[0] = 0;
for (int i = 1; i < 20; i++)
{
sayi = (int) (Math.random() * 20);
for (int j = 0; j <= i; j++)
{
if (Sorusec[j] == sayi) {
sayi = (int) (Math.random() * 20);
j=0;
}
}
Sorusec[i] = sayi;
} for (int j = 0; j < 20; j++)
{
System.out.println(Sorusec[j]+" ");
}
}
}
Üsteki kodun çıktısı:
Umarım faydalı olmuştur.Yazımı okuduğunuz için teşekkürler:)
aynı sayılardan çıkabiliyor
YanıtlaSilhaklısınız şimdi düzelttim.Umarım işinize yarar.Kolay gelsin.
Sil