İlginizi Çekebilir
Java'da OOP Kavramını Öğreniyoruz.
featured
  1. Ana Sayfa
  2. Java
  3. Java’da Random Sınıfı

Java’da Random Sınıfı

Java’da Random sınıfı anlattığım birçok konu içeriğinde vermiş olduğum örneklerde kullandığım bir sınıf. Java random sınıfı konusunda herkesin bir fikrinin olamayacağı için ayrı bir konu içerisinde basit bir anlatım gerçekleştirme gereksiniminde hissettim kendimi.

Java'da Random Sınıfı
Java’da Random Sayılar

Java’da Random Sınıfı Nedir?

Programlarımız için bazen benzersiz, rastgele değerlere ihtiyaç duyabiliriz. Bu ihtiyaçlarımızı Java’nın paketlerinden java.util.Random paketini projemize dahil etmemiz gerekmektedir. Java’da Random sınıfı bizlere çeşitli veri tiplerinden rastgele bir değer almamızı sağlamaktadır.

Nasıl Oluşturulur?

Programımıza öncelikle aşağıda bulunan kod satırını import etmemiz gerekmektedir.

import java.util.Random; // Sınıfın üstünde tanımlayacaksınız.

Java’da random sınıfı için ilgili paketi import ettikten sonra rastgele sayılar üretebilmek için programımız içerisinde bir nesne oluşturmamız gerekiyor ve oluşturulan bu nesne sayesinde rastgele sayılar üretmeye başlayabiliyoruz.

// Java.Util paketinden Random sınıfını import ettik:
import java.util.Random;

public class Main {
    public static void main(String[] args) {
        // Random Sınıfını Nesne Olarak Tanımlama İşlemi:
        Random random = new Random();
    }
}

Nesne olarak tanımladığımız sınıfta bazı veri tiplerinden çıktılar almaya çalışalım ve güzel bir örnek ile konumuzu bitirelim.

import java.util.Random;

public class Main {
    public static void main(String[] args) {
        // Random Sınıfını Nesne Olarak Tanımlama İşlemi:
        Random random = new Random();
        // Değişken Tanımlamaları ve Rastgele Değer Atama:
        int benInt = random.nextInt(10); //10 Değerini tanımlamazsak integer bir değerin alabileceği tam sayı aralığında değer üretir.
        float benFloat = random.nextFloat();
        double benDouble = random.nextDouble();
        boolean benBoolean = random.nextBoolean();
        // Ekrana Değerleri Yazdırma İşlemi:
        System.out.println("Random Sınıfını Tanıyoruz\n---------------\n1- Random Integer: "+benInt+"\n2- Random Float: "+benFloat+"\n3- Random Double: "+benDouble+"\n4- Random Boolean: "+benBoolean+"\n---------------");
    }
}

Kod Çıktısı:

Java dilinide rastgele değer üretme
Java’da Random Sınıfı

Kod içerisinde yorum satırı olarak belirttiğim gibi 10 değerini kaldırıp bir değer tanımlamazsak integer veri tipinin sınırları içerisinde rastgele bir değer üretimi gerçekleştirir. Belirtmiş olduğumuz oradaki 10 değeri programı sınırlandırarak 0 ile 9 arasında bir rastgele sayı üretmemize olanak sağlar.
Eğer belirli rastgele bir sayılar içerisinde değer üretmek istenirse basit bir formül ile bu işlemi gerçekleştirebiliriz.

Maksimum Sınır - Minimum İstek + 1 şeklindeki formülü kullanarak istediğimiz aralıkta değerlere ulaşabiliriz. Bu formülü kullanarak gelin birlikte 16 ile 137 değerleri arasında rastgele bir tam sayı üretmemizi sağlayacak bir program oluşturarak kaçıncı denemede 16. değere ulaşabildiğini ekranımıza yazdıracak bir program oluşturalım.

import java.util.Random;

public class Main {
    public static void main(String[] args) {
        // Random Sınıfını Nesne Olarak Tanımlama İşlemi:
        Random random = new Random();
        int sayac=1;
        while(true){
            int randomSayi = random.nextInt(122)+16;
            if(randomSayi == 16){
                System.out.println("Çalıştırılan program "+ sayac+" deneme gerçekleştirdikten sonra 16 değerine ulaştı.");
                break;
            }
            sayac++;
        }
    }
}

Kod Çıktısı:

Java random örneği
Java’da Rastgele Sayı Örneği

Bu programı oluştururken yaptığım işlemler:
#1 Bizden istenilen 16. değere kaçıncı denemede ulaştığını bulabilmek adına sonsuz döngü içerisinde olacak bir while döngüsü oluşturuyoruz. Oluşturmuş olduğumuz döngü içerisinde sürekli her bir tur içerisinde random değer ürettirerek kontrol yapısında 16 değerine eşitlik durumunu sorguluyoruz ve ona göre döngüyü sonlandıracağımız bir döngü oluşturuyoruz.
#2 İkinci aşama olarak vermiş olduğum formülü kullanarak parantez içerisine yazmamız gereken değeri öğreneceğiz. (137-16)+1 = 122 değerine ulaştık ve parantez içerisine yazmamız gereken değeri elde ettik.
#3 Parantez içerisine direkt 122 değerini yazarsak bize 0 değeri ile 121 değeri arasında rastgele bir değer üreteceğinden üretilen değerin minimum 16 ve maksimum 137 olabilmesi için 16 ile çıkan sonucu toplattırma işlemini gerçekleştiriyoruz.

Bir önceki içeriğim olan Java’da Klavyeden Veri Alma konusunda anlatımını gerçekleştirmiş olduğum JOptionPane kullanarak bir örnek çalışması yaparak konumuzu sonlandırmak istiyorum.

Bu örnek içerisinde programımız üzerinde 1 ile 10 arasında bir random değer üretilsin. Bu üretilen değeri tahmin ettirebilmek için kullanıcıdan JOptionPane kullanarak veri alma ve bilgi penceresi ekranı çıktıları gösterecek olalım. Bunun için yazacağımız kod satırı şu şekildedir:

import javax.swing.*;
import java.util.Random;

public class Main {
    public static void main(String[] args) {
        // Random Sınıfını Nesne Olarak Tanımlama İşlemi:
        Random random = new Random();
        // Değişken Tanımlaması:
        int randomSayi,seninTahminin,deneme=1;
        String veriAl;
        JOptionPane.showMessageDialog(null,"Programımız Başlatılıyor.","Bilgi Penceresi",JOptionPane.INFORMATION_MESSAGE);
        randomSayi = random.nextInt(10)+1;
        while(deneme<=3){
            String veriMetni = deneme+". Tahmininiz:";
            veriAl = JOptionPane.showInputDialog(veriMetni);
            seninTahminin = Integer.parseInt(veriAl); // String olarak aldığımız değeri int çeviriyoruz.
            if(randomSayi==seninTahminin){
                String tebrikMesaji= "Tebrikler. "+deneme+". Denemede Random Değeri ("+randomSayi+") Tahmin Etmeyi Başardınız.";
                JOptionPane.showMessageDialog(null,tebrikMesaji,"Tebrikler",JOptionPane.PLAIN_MESSAGE);
            }
            else if(deneme==3){
                String uzgunumMesaji ="Üzgünüm. 3. Deneme Hakkınız Bitti. Değeri Bilemediniz. Random Üretilen Değer: "+randomSayi;
                JOptionPane.showMessageDialog(null,uzgunumMesaji,"Üzgünüm :(",JOptionPane.ERROR_MESSAGE);
            }
            deneme++;
        }
    }
}

Kod Çıktısı:

Java Random JOptionPane Kullanımı
Java’da Random sınıfının JOptionPane ile Kullanımı

Programı oluştururken izlediğim adımlar:
#1 İlk olarak programa gerekli olan javax.swing ve java.util paketlerini import ettim. İmport ettikten sonra gerekli olan değişkenleri tanımlayarak temel yapıyı oluşturmaya başladım.
#2 Kullanıcıya üretilen random değeri tahmin etmesi için 3 hak vereceğimden ve kaçıncı denemeyi gerçekleştirdiğini gösterebilmek için “deneme” isimli değişkenin değerini 1 olarak ayarladım.
#3 Ekrana JOptionPane kullanarak bilgi mesajı göstererek programının başladığını gösterdim ve randomSayi değişkenimize random bir değer tanımlaması gerçekleştirdim.
#4 While döngüsü oluştururken deneme olarak tanımladığım değişkenin 3 değerinden küçük veya eşitlik koşulunu ekleyerek programımızın klavyeden veri alma kısmına geçiş sağladık.
#5 JOptionPane konusunu anlatırken dile getirdiğim gibi aldığımız değerler String değer olmak zorundaydı. Bu yüzden aldığımız String değerleri her döngü döndüğünde int değere dönüştürüyorum.
#6 Dönüştürmüş olduğum değeri, kontrol yapısında program başlangıcında üretilen random sayı ile eşitliğini kontrol ettirerek ekrana gerekli çıktıları gösteriyorum.

Java’da random sınıfı ile ilerleyen zamanlarda kullanıcılarıma bağımsız numaralara oluşturarak, lisans anahtarları oluşturabilmek için sıklıkla göreceğimiz bir konu olduğundan ayrı bir başlık altında anlatmamın gerçekten iyi bir karar olduğunu düşünüyorum. Eğer konu işleyişi konusunda bir öneriniz veya konu ile alakalı bir sorunuz var ise benimle aşağıda bulunan “yorum yap” kısmından iletişime geçebilirsiniz.

Yorum Yap

Yazar Hakkında

Yazmayı, öğrenmeyi, öğrendiklerini paylaşmayı , kodlamayı ve günün birinde Yönetim Bilişim Sistemleri Uzmanı olmanın hayalini kuran birisiyim.

Yorum Yap