Java Dersleri – 38 – Random Sınıfı

By | 6 Ekim 2019

Random Sınıf

Random Sınıfı – Rastgele Sayı

Java’da Rastgele bir işlem gerçekleştirmek için Random sınıfından faydalanıyoruz. Tabi bu sınıfa ulaşmak için import etmemiz gerek. Bunu nasıl yapacağımızı da packages(paketler) dersimizde öğrenmiştik.

Bunu nasıl yapacağınızı ve bu sınıfın nerede olduğunu bilmiyorsanız hemen onu da göstereyim. Aşağıdaki kod satırını kodlarınızın en üstüne yazın.

import java.util.Random;

Random sınıfından faydalanmak için öncelikle nesnemizi aşağıdaki gibi oluşturalım.

import java.util.Random;

public class Main {
    public static void main(String[] args) {
        Random r = new Random();
    }
}

Artık Random sınıfından faydalanabiliriz. Şimdi rastgele bir sayı çekip bir yere atayalım ve daha sonra ekrana bastırırız.

import java.util.Random;

public class Main {
    public static void main(String[] args) {
        Random random = new Random();
        int sayi = random.nextInt();
        System.out.println(sayi);
    }
}

Çıktısı;

-707595192

Aynı kodu tekrar çalıştırınca 1869030824 şeklinde bir çıktı aldık bu kez. Görüldüğü gibi rastgele bir şekilde bazen negatif bazen de pozitif sayıları bize verdi.

İyi güzel de ben rastgele sayı gelmesini istiyorum ama benim belirlediğim sınırlar içinde olsun derseniz onunla da ilgili örnekler görelim.

import java.util.Random;

public class Main {
    public static void main(String[] args) {
        Random random = new Random();
        int sayi = random.nextInt(150);
        System.out.println(sayi);
    }
}

Kodu incelediğinizde bir önceki örneğimizi kullanmışız ama sadece 150 sayısını oraya eklediğimizi göreceksiniz. Bu onun 0’dan 150’e kadarki sayılardan rastgele birisini seç demek oluyor. 0 dahilken 150 dahil değil. Rastgele gelebilecek sayılar arasından 150’nin de gelme olasılığı olsun derseniz orayı 151 şeklinde düzenlemeniz gerek.

Üst sınırı belirledik şimdi de alt sınırı belirleyelim. Yalnız bu işlem kafanızı birazcık karıştırabilir. Örneğimizi hemen görelim.

import java.util.Random;

public class Main {
    public static void main(String[] args) {
        Random random = new Random();
        int sayi = random.nextInt(5)+40;
        System.out.println(sayi);
    }
}

Bunu çalıştırdığımız zaman nasıl bir sonuç alacağımızı tahmin edin.
40-41-42-43-44 sayılarından birisi rastgele seçilecek.
nextInt(5)+40; kısmında +40 ile alt limiti, 5 ile de üst limiti belirledik. Yani 40’tan sonra 5 defa git.

nextInt(5)+40; kısmını nextInt(5)-40; şeklinde değiştirelim. Bu kez ne olacak? -40 ve -36 dahil olmak üzere bu aralıktaki sayılardan birisi rastgele seçilecek.

Rastgele seçilecekler arasında float veya double bir değer almak istersek aşağıdaki gibi yapabiliriz.

import java.util.Random;

public class Main {
    public static void main(String[] args) {
        Random random = new Random();
        float sayi = random.nextFloat();
        System.out.println(sayi);
    }
}

double için ise float sayi = random.nextFloat(); kısmını double sayi = random.nextDouble(); şeklinde değiştirebilirsiniz. Ama rastgele seçilecek olan değer 0-1 arasında olacak.
Ben üst limiti 1 değil de 100 yapmak istersem?

import java.util.Random;

public class Main {
    public static void main(String[] args) {
        Random random = new Random();
        float sayi = random.nextFloat()*100;
        System.out.println(sayi);
    }
}

Aşağıdaki kodumuzda ne olacak peki

import java.util.Random;

public class Main {
    public static void main(String[] args) {
        Random random = new Random();
        float sayi = (random.nextFloat()*10)+5;
        System.out.println(sayi);
    }
}

Çıktısı 5.0 dahil olmak üzere 15.0‘a kadarki float değerlerden birisi rastgele seçilecek.

Rastgele sayılardan bahsedilecekse kesinlikle zar oyunu örneğine değinilir. Şimdi biz de bir oyun yapalım ve şöyle olsun.

  • 2 zar aynı anda atılsın.
  • zarların toplamı 5 veya 12 ise KAZANDINIZ mesajı verilsin.
  • Kişinin 10 deneme hakkı olsun. NOT: bu koşul if ile halledilsin.
import java.util.Random;

public class Main {
    public static void main(String[] args) {
        Random random = new Random();

        int toplam = 0;
        int deneme = 1;

        while (true) {
            int zar1 = random.nextInt(6)+1;
            int zar2 = random.nextInt(6)+1;

            toplam = zar1 + zar2;


            if (toplam == 5 || toplam == 12){
                System.out.println(deneme+". denemede KAZANDINIZ");
                break;
            } else if (deneme == 10){
                break;
            } else {
                System.out.println(deneme+". deneme başarısız.");
            }
            deneme++;
        }
    }
}

Örnek Çıktı;

1. deneme başarısız.
2. deneme başarısız.
3. deneme başarısız.
4. deneme başarısız.
5. deneme başarısız.
6. deneme başarısız.
7. denemede KAZANDINIZ

2 thoughts on “Java Dersleri – 38 – Random Sınıfı

  1. linda busra berg

    Merhaba, random konusuna calisirken sayfanizi buldum, ve gercekten cok faydasi oldu, ama su satirda neden && var? soruda 5 veya 12 diyor.

    while (toplam !=5 && toplam !=12)

    cevabiniz icin tesekkur ederim

    Reply
    1. wasdtp Post author

      Selam, kusura bakmayın iş yoğunluğundan dolayı web sitesiyle eskisi gibi pek ilgilenemediğimden cevaplar gecikti biraz.
      Evet haklısınız gözden kaçan bazı detaylar olmuş hemen düzeltiyorum. Dikkatiniz için teşekkürler. İyi çalışmalar.

      Edit: Bahsettiğiniz alan düzeltildi. Daha okunaklı da bir hale getirildi aynı zamanda

      Reply

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir