Java'da rastgele bir sayı çekmek için kullanılan sınıf olan Random sınıfını işleyeceğiz.
Random sınıfı hakkında bilgi vermeye başlamadan önce projelerimizde random sınıfını kullanabilmemiz için java.util paketini projemize dahil etmeliyiz (import java.util.*;).
Nasıl Oluşturulur?
Java'da bir random oluşturmak için ya bir maksimum değer belirlemelisiniz ya da hiçbir değer vermeden rastgele bir sayı çekmesini söylemelisiniz. Şu şekilde rastgele bir sayı çekebilirsiniz;
Random rastgele = new Random();
int rastgeleSayi = rastgele.nextInt(100); // 0-99 arası sayıları çeker.
Burada yer alan 100 değerini kaldırarak rastgele bir sayı da çekebilirsiniz.
Ayrıca kodda yer alan nextInt() ifadesi yerine nextDouble() da kullanılabilir.
Eğer rastgele sayı alırken 0'dan değilde 1'den başlamasını ve 100 sayısının da dahil edilmesini istiyorsak;
Random rastgele = new Random();
int rastgeleSayi = rastgele.nextInt(100)+1;
şeklinde bir kullanım oluşturabiliriz.
Eğer belli bir aralıktaki sayıları bulmak istiyorsak şöyle bir formül oluşturabiliriz;
MAKSİMUM SAYI - MİNİMUM SAYI +1
Örnekler
3 ile 10 arasında rastgele sayı (3 ve 10 dahil) almak istiyoruz: 10-3+1 = 8
Random rastgele = new Random();
int rastgeleSayi = rastgele.nextInt(8) + 3;
100 ile 110 arasında rastgele sayı (100 ve 110 dahil) almak istiyoruz: 110-100+1 = 11
Random rastgele = new Random();
int rastgeleSayi = rastgele.nextInt(11) + 100;
nextDouble(), 0 ile 1 aralığında rastgele bir sayı seçer. Örneğin rastgele not ortalaması hesaplaması için şöyle bir kod parçası oluşturabiliriz;
Random rNot = new Random();
double not = rNot.nextDouble() * 2.5 + 1.5;
System.out.println("GPA: "+not);
ÖRNEK
Rastgele atılan 2 zarın toplamı 9 olmalıdır. Kaçıncı atışta 9 sayısına ulaşıldığını kullanıcıya gösterin. Ayrıca her atışın toplamını ekrana çıktı olarak verin.
ÇÖZÜM
Random rZar = new Random();
int toplam = 0;
int denemeSayisi = 0;
while(toplam != 9) {
int zar1 = rZar.nextInt(6) + 1;
int zar2 = rZar.nextInt(6) + 1;
toplam = zar1+zar2;
denemeSayisi++;
System.out.println(denemeSayisi+". deneme toplamı: "+toplam);
}
System.out.println(denemeSayisi+". denemede buldu!");
ÇIKTI
1. deneme toplamı: 8
2. deneme toplamı: 12
3. deneme toplamı: 7
4. deneme toplamı: 11
5. deneme toplamı: 9
5. denemede buldu!