08 KASIM 2017
SALI
22.58
Java - Random Sınıfı

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!
YORUMLAR 1
1
Cengizhan
04 KASIM 2019 - 15.30
Kolay gelsin. while(toplam != 9) bu kodda ki faktöriyelin anlamı nedir?
CEVAPLA
1
Mert Topuz
05 KASIM 2019 - 22.18
Teşekkürler Cengizhan, != eşit değilse anlamına geliyor. While içinde kullandığımızda toplam değişkeni 9'a eşit olmadığı sürece döngünün devam edeceği anlamına geliyor. Sana da kolay gelsin, iyi çalışmalar :)
1
cengizhan özdal
05 KASIM 2019 - 23.49
Teşekkür ederim.
YORUM BIRAK
Şuanda bu yoruma cevap yazıyorsunuz:
İptal Et