C# Tekrarsız Rastgele Sayı Oluşturma
Merhabalar, C# derslerimize kaldığımız yerden devam ediyoruz. Bu dersimizde tekrarsız rastgele sayı oluşturmayı anlatacağım. Hadi başlayalım !
Daha önceki bir yazımda C# ile rastgele sayı üretmeyi anlatmıştım. O yazıya buraya tıklayarak ulaşabilirsiniz. Örneğin kullanıcıya kaç tane rastgele sayı istediğini soralım ve istediği kadar üretelim.
Console.Write("Kaç Tane Rastgele Sayı İstersiniz ?: ");
int adet = Convert.ToInt32(Console.ReadLine());
Şimdi yapmamız gereken bi döngü kurup kullanıcının istediği kadar (adet değişkeni kadar) dönüp her adımda rastgele sayı oluşturmalı ve bir diziye eklememiz gerek. Amaaa bu yöntem şu anda yapmak istediğimiz şey için çok sağlıksız. E o zaman ne yapacağız ? İşte işin püf noktası burada. Oluşturulan sayıyı daha önce oluşturduk mu oluşturmadık mı diye kontrol edecek ve oluşturmadıysak oluşturulan sayıları tuttuğumuz diziye ekleyeceğiz. Kontrol işleminide dizi içerisinde var mı yok mu diye bakarak yapabiliriz. E o kadar konuştuk, birazda kod yazalım 😀
int[] dizi = new int[adet];
int uretilen = 0;
Random rnd = new Random();
while(uretilen != 0)
{
int rastgele = rnd.Next();
if(!dizi.Contains(rastgele))
{
dizi[uretilen] = rastgele;
uretilen++;
}
}
Evet az önce teorik kısmını anlattığım şeyin pratik hali bu şekilde. Fakat rastgele sayı oluşturduk ama kullanıcı hangi sayıları ürettiğimizi bilmiyor, onuda kullanıcıya bildirelim, bunuda foreach döngüsü kullanarak yapalım;
foreach(int sayi in dizi)
Console.WriteLine(sayi);
Evet tüm işlemlerimiz bu kadar, kodları yazıp çalıştırdığınızda tamda istediğimiz şeyi yapmış olduğumuzu göreceksiniz. Evet bu dersimizde bu kadardı, buraya kadar yazdığımız kodları toplu olması için aşağıya bırakıyorum;
int[] dizi = new int[adet];
int uretilen = 0;
Random rnd = new Random();
while(uretilen != 0)
{
int rastgele = rnd.Next();
if(!dizi.Contains(rastgele))
{
dizi[uretilen] = rastgele;
uretilen++;
}
}
foreach(int sayi in dizi)
Console.WriteLine(sayi);
Tüm C# derslerimize buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.