Buradasınız

31-C#-26-C# While Döngüsü

c# dersleri

While Döngüsü  

Koşul doğru olduğu sürece döngü işlemi yapmamızı sağlayan yapıdır. Döngü işleminin kaç defa yapılacağı belli olmayan işlemle içi kullanılır. For döngüsünde ise başlangıç ve bitiş belirtimekteydi.

While Kullanımı

Değişken ve ilk değer; 
while (Koşul)
{
	//Yapılacaklar
	Artım miktarı
}

while döngüsünde koşul doğru(true) olduğu sürece döngü devam etmektedir. while döngüsü ile for döngüsünü karşılaştıralım.

while ile for arasındaki farklar

Görüldüğü gibi for döngüsünde değişken oluşturma,koşul ve artım miktarı aynı yerde yapılıyor. while döngüsünde ise döngü değişken oluşturma döngünün üstünde, koşul while satırında ve artım miktarı döngü bloğu içinde yapılmaktadır. Bu şekilde for döngüsü gibi kullanılmaktadır. Burada başlangış ve bitiş değeri belirtilmiş şekilde kullanılmaktadır. Tabiki while döngüsünü başlangıcı ve bitiş değeri belli olmayan durumlarda kullanılması daha uygundur. 

Başlangıcı ve bitişi belli olmayan nedir?

Bir işlemin kaç defa yapılacağı belli olmayan durumlara başlangıcı ve bitişi belli olmayan durumlar diyebiliriz. Örneğin 1'den 10'a kadar dediğimizde burada 10 defa olduğu açıkça bellidir. Ama Klavyeden Sıfır(0) girilene kadar, girilen syıların toplamı 100 olana kadar dediğimizde kaç değer girileceği belli değildir. Bu durumlarda while döngüsü kullanılması uygundur.

 

Örnek-1 : 0 ile 10 arasındaki sayıları alt alta ekrana yazdıran C# programını while döngüsü ile yapınız.

int x = 0;
while (x <= 10)
{
    Console.WriteLine(x);
    x++;
}
Console.ReadKey();

c# while döngü örnekleri

x değeri döngü dışında 0 olarak belirleniyor. Döngü içinde x değeri yazdırılıyor ve 1 artırılıyor. Koşul sağlandı sürece işlem yapılıyor. X<=10 sağlanana kadar işlem yapılacaktır.

For ile yapılacak olsaydı

for (int x = 0; x <= 10; x ++)
{
    Console.WriteLine(x);
}
Console.ReadKey(); 

Eğer x++;  kullanılmamış olsaydı sonsuz döngü oluşacak ve devamlı 0 yazdırılacaktı.0-10 arası yazdırılır.

Sonsuz döngü aşağıdaki gibi de olur. koşula true yazarak. bu durumda x++; ile x artırılarak yazdırılıyor. tabiki x değeri int tanımlandığı için int son atanabilecek değere kadar gider ve hata verir. bu tarz döngülerden çıkmak için break; kullanılır bir sonraki derslerimizde bahsedilecektir.

int x = 0;
while (true)//sonsuz döngü oluştu.
{
    Console.WriteLine(x);
    x++;
}
Console.ReadKey();

Örnek-2: 1’den  50’ye kadar tek sayıları yan yana while döngüsüyle yazdıralım.

int x = 1;
while (x <= 50)
{
    Console.WriteLine("{0} ",x);
    x = x + 2; //x+=2;
}
Console.ReadKey(); 

For ile yapılacak olsaydı

for (int i = 2; i <= 10; i += 2)
{
    Console.WriteLine("{0} ",i);
}
Console.ReadKey();  

 

Örnek-3: Klavyeden 1 ile 100 arasında bir sayı girilecek, rastgele sayılar tutularak  tutulan sayılardan girdiğimiz sayı eşit olduğunda rastgele sayı tutma işlemi bitirilip kaç defada gerçekleştiğini ve tutulan sayıları ekrana yazdıran c# kodunu while döngüsü kullanarak yazınız.

int s, sayac = 1,rastgele=0;//rastgeleyeilk olarak 1-100 arasından farklı değer atıyoruz.
Console.Write("Bir sayı giriniz (1-100 arası) :");
s = int.Parse(Console.ReadLine());

Random r = new Random();
            
// girilen sayı (s) ile rastgele tutulan sayı(rastgele) eşit olmadığı sürece devam et
while (s != rastgele)
{
    rastgele = r.Next(1, 101);
    Console.WriteLine(rastgele);
    sayac++;
}
Console.WriteLine("{0} defada bulundu", sayac);
Console.ReadKey();   

Örnek-4: Klavyeden girilen 1 ile 100 arasında tutulan sayının  rastgele olarak tutulan sayıların arasından ikinci olarak kaç defada tutulduğunu bulan c# kodunu while döngüsü yapınız.(sayılar yan yana yazdırılsın)

int s, sayac = 1,rastgele=0;//rastgeleyeilk olarak 1-100 arasından farklı değer atıyoruz.
int durum = 0;
Console.Write("Bir sayı giriniz (1-100 arası) :");
s = int.Parse(Console.ReadLine());

Random r = new Random();


while ((s != rastgele) || (durum <= 1))
{
    rastgele = r.Next(1, 101);
    Console.Write("{0} ",rastgele);
    sayac++;
    if (s == rastgele) durum++;
}

Console.WriteLine();
Console.WriteLine("{0} defada bulundu", sayac);
Console.ReadKey();   

c# while döngüsü örnek sorular

Örnek-5: Rastgele üretilen 1 ile 100 arasında sayıların toplamı 1000’den büyük olana kadar sayı üretip toplayan ve toplamı ekrana yazdıran c# programını yazınız.

int sayi, toplam = 0;
Random r = new Random();
while (toplam < 1000)
{
    sayi = r.Next(1, 101);
    toplam += sayi;
    Console.Write("{0} ",sayi);
}
Console.WriteLine();
Console.WriteLine("Toplamları: {0}", toplam);
Console.ReadKey();

rastgele tutulan tek sayıların toplamı olsaydı

int sayi, toplam = 0;
Random r = new Random();
while (toplam < 1000)
{
    sayi = r.Next(1, 101);
    if (sayi % 2 == 1) //tek sayı ise topla ve yazdır
    {
        toplam += sayi;
        Console.Write("{0} ", sayi);
    }
}
Console.WriteLine();
Console.WriteLine("Toplamları: {0}", toplam);
Console.ReadKey();

 

Örnek-6: Ekrana 250 ile 1000 rastgele toplam 10 tane çift sayı yazdıran c# programını yapınız.

int sayac = 0, sayi;
Random r = new Random();
while (sayac < 10)
{
    sayi = r.Next(250, 1001);
    if (sayi % 2 == 0)//sayı çift ise sayıyı yazdır ve sayacı arttır
    {
        Console.WriteLine(sayi);
        sayac++;
    }
}
Console.ReadKey();

 

Örnek-7: 1-100 arasında rastgele tutulan bir sayıyı tahmin etme oyununu C# programında yapınız.

int sayi = 0;
Random r = new Random();
int rs = r.Next(1, 101);
            

while (sayi != rs)
{
    Console.Write("Sayı girin: ");
    sayi = int.Parse(Console.ReadLine());
    if (sayi > rs)
        Console.WriteLine("Küçük sayı girin");
    else if (sayi < rs)
        Console.WriteLine("Büyük sayı giriniz");
    else
        Console.WriteLine("Tebrikler Bildiniz");
}
Console.ReadKey();

Bildikten sonra devam etmek istiyormusunuz şeklide sorularak oyuna devam ettirelim.

char k;
int adet, rs, sayi;
while (true) //sonsuz döngü
{
    adet = 0;
    rs = 0;
    sayi = 0;
    Random r = new Random();
    rs = r.Next(1, 101);
    while (rs != sayi)
    {
        Console.Write("Bir sayı gir:");
        sayi = int.Parse(Console.ReadLine());
        adet++;
        if (sayi > rs)
            Console.WriteLine("Kücük sayı giriniz.");
        else if (sayi < rs)
            Console.WriteLine("Büyük sayı giriniz.");
    }

    Console.WriteLine("Tebrikler bildiniz");
    Console.WriteLine("{0} denemede buldunuz.", adet);
    Console.WriteLine("Devam etmek istiyormusunuz?[e/h]");
    k = char.Parse(Console.ReadLine());
    if (k == 'e') break; //sonsuz döngüyü sonlandır
    Console.Clear();
}
        


Console.ReadKey();

Örnek-8: Klavyeden karakterler istenerek “i” karakteri girildiğinde karakter isteme bitirilip, girilen tüm karakterleri yan yana ekrana yazdıran c# programını yapınız.

string birlesim = null;// null boş anlamına gelir yada ""(çift tırnak arada boşluk yok)
char k = ' ';//char türünde null olmaz ' ' (tek tırnak arada boşluk var)şeklinde olmalı

while (k != 'i')
{
    Console.Write("Bir karakter Girin: ");
    k = char.Parse(Console.ReadLine());
    birlesim += k;
}
Console.WriteLine(birlesim);
Console.ReadKey();

 

Ödev-1: Klavyeden sürekli sayı girişi yapılacaktır. Sıfır(0) girildiğinde, o ana kadar girilen sayıların toplamını ekranda görüntüleyen C# programını yapınız.
Ödev-2: Klavyeden 0 (sıfır) girilene kadar sayıların tekleri toplayan, çiftleri çıkaran ve sonucu ekrana yazan programı yazınız.

Yorumlar

Salih kullanıcısının resmi
Salih

1 ile 100 arasinda rastgele nir sayi üretip ekrana yazan programin algoritmasi ve c# programi

recep kullanıcısının resmi
recep

C# Uygulaması aşağıdaki gibidir. 

Random r = new Random(); 
int sayi = r.Next(1, 101);//101 olmasının nedeni tutulacak son tam sayının bir üstünü yazmak gerekiyor. kural

Console.WriteLine("Rastgele tutulan sayı {0} ", sayi);
Console.ReadKey();

 

Taylan kullanıcısının resmi
Taylan

C# / Kullanıcı çıkıncaya kadar girilen sayıları toplayan, sayı girişi bitince girilen sayıların toplamını yazdıran program.

recep kullanıcısının resmi
recep

Çıkma işlemi nasıl yapılmalı 0 girdiğindemi çıkacak yoksa farklı bir şekildemi ona göre cevaplayalım.

anıl kullanıcısının resmi
anıl

 static void Main(string[] args)
        {
            int toplamc = 0;
            int toplamt = 0;
            int girilen = 1; 
           

            while (girilen!= 0)
            {
                Console.Write("Bir sayı girin ");
                 girilen = Convert.ToInt32(Console.ReadLine());
                if (girilen % 2 == 0)
                {
                    toplamc += girilen;
                }
                else
                    toplamt += girilen;

                
                
              
            }
            Console.WriteLine("cift toplam:"+toplamc);
            Console.WriteLine("tek toplam:"+toplamt);
            Console.ReadKey();
        }
    }
}
 

metin kullanıcısının resmi
metin

kullanıcı tarafından girilen baslangıc ve bitiş değerleri ile belirlenecek olan aralıktaki asal sayıları bulan  c kaynak kodu kullanılarak for döngüsü,while döngüsü ve do while döngüsü olarak hazırlanması istenilmiş olup yardımcı olurmusunuz teşekkürler

Pemal Kan Carlak kullanıcısının resmi
Pemal Kan Carlak

biz Tiviç yayıncala c şarp yapamoz lütfen yardım edeee siz bizeeee

Yorum ekle

Konuyla İlgili Yazılar

6-C#-1 Programının Tanıtılması

C# (C Sharp) Bilgisayar programlama konusunda şu ya da bu programlama dili daha iyidir demek yanlıştır. Önemli olan yazılmış olan programın işlevselliğidir.... devamı...