Buradasınız

33-C# Do-While Döngüsü

c# dersleri

Do – While Döngüsü

Döngü işlemini en az bir kere yapan ve belirtilen koşul sağlandı sürece çalışan döngüdür. While döngüsünde koşul döngüye girerken kullanılıyor. Do-While’da ise koşul en sonda kullanılır.

Kullanımı

do 
{             
       // Yapılacaklar 
} 
while (koşul);

 

//While döngüsünde aşağıdaki gibiydi. 
while(koşul) 
{
             // Yapılacaklar 
}

 

Örnek: Ekrana 10 kere GOSB Tadım Jale Yücel EML yazdıran C# programını yazınız.

int i = 0; 
do   
{
    i++;
    Console.WriteLine( "GOSB Tadım Jale Yücel EML "); 
} 
while (i <10); 
//---------------------------------------------------------- 
//Bu örnek for ile yapılacak olsaydı. 
for (int x = 0; x < 10; x++)
    Console.WriteLine("GOSB Tadım Jale Yücel EML ");   

//Bu örnek while ile yapılacak olsaydı. 
int a = 0; 
while (a < 10) 
{             
     a++;
     Console.WriteLine("GOSB Tadım Jale Yücel EML "); 
} 
Console.ReadKey();

Örnek: 1 ile 100 arasında sayı üretelim, üretilen sayı 50 olana kadar sayıları ekrana yazdıran C# programını yazınız.

Random r = new Random(); 
int sayi; 
do
{
     sayi=r.Next(1,101); 
     Console.Write("{0} ",sayi); // sayi+" " 
} 
while(sayi!=50); 
//sayi 50 den farklı olduğu sürecek döngü devam eder. 
Console.ReadKey();

Bu örneği break komutu kullanarak yapacak olsaydık. aşağıdaki gibi yapılabilir.

Random r = new Random(); 
int sayi; 
do 
{ 
     sayi=r.Next(1,101); 
     Console.Write("{0} ",sayi); // sayi+" " 
     if (sayi==50) break; //sayi 50'ye eşit olduğunda break komutu çalışır ve döngü den çıkılır.
} 
while(true); //Sonsuz döngü 
Console.ReadKey();

 

 

Örnek: Klavyeden sayılar girilmesi istenerek girilen sayılar toplanacak tek sayı girdiğinde toplama işlemi bitirilip toplam değerini ekrana yazdıran programı yapınız.(do-while ile)

int sayi=0,toplam=0; 
do 
{
     Console.Write("Sayı Girin: ");
     sayi=int.Parse(Console.ReadLine());
     if (sayi%2==1) break;
     toplam += sayi; 
} 
while (true);//sayi%2==0 
Console.WriteLine("Sayıların toplamı:{0}",toplam); 
Console.ReadKey();

 

Örnek:  1 ile 100 arasında tutulan rastgele sayıyı bulma oyunu yapalım.

Random r = new Random();
int rs = 0;
int s;
rs = r.Next(1, 101);
do
{
    Console.Write("Sayı Giriniz: ");
    s = int.Parse(Console.ReadLine());

    if (s < rs)
        Console.WriteLine("Büyük sayı giriniz...");
    else if (s > rs)
        Console.WriteLine("Küçük sayı giriniz...");
    else
        Console.WriteLine("Tebrikler bildiniz...");
}
while (s != rs);
Console.ReadKey();

Örneğimize 10 hak  ekleyelim.
hak adında bir değişken oluşturup ilk değerini 10 atayalım. döngü içinde bir eksiltelim ve döngü koşuluna durumunu ekleyelim. hak 0 olduğunda ekrana hakkınız bitmiştir yazdıralım.
Eklenenler

Random r = new Random();
int rs = 0;
int s, hak = 10;
rs = r.Next(1, 101);
do
{
    Console.Write("Sayı Giriniz: ");
    s = int.Parse(Console.ReadLine());
    hak--;

    if (hak == 0)
        Console.WriteLine("Hakkınız bitmiştir...");
    else if (s < rs)
        Console.WriteLine("Büyük sayı giriniz... Kalan hakkınız {0}", hak);
    else if (s > rs)
        Console.WriteLine("Küçük sayı giriniz... Kalan hakkınız {0}", hak);
    else
        Console.WriteLine("Tebrikler bildiniz...");
}
while ((s != rs) && (hak != 0));
Console.ReadKey();

 Oyun bittiğinde yeniden oynamak için sorularak devam etme işlemi yapalım.


Random r = new Random();
int rs = 0;
int s, hak = 10;
rs = r.Next(1, 101);
do
{
    Console.Clear();
    do
    {

        Console.Write("Sayı Giriniz: ");
        s = int.Parse(Console.ReadLine());
        hak--;

        if (hak == 0)
            Console.WriteLine("Hakkınız bitmiştir...");
        else if (s < rs)
            Console.WriteLine("Büyük sayı giriniz... Kalan hakkınız {0}", hak);
        else if (s > rs)
            Console.WriteLine("Küçük sayı giriniz...Kalan hakkınız {0}", hak);
        else
            Console.WriteLine("Tebrikler bildiniz...");
    }
    while ((s != rs) && (hak != 0));
    Console.Write("Devam etmek istiyormusunuz?(e/h): ");
    char k = char.Parse(Console.ReadLine());
    if ((k != 'e') && (k != 'E')) break;
}
while (true);

Oyunu daha geliştirelim. Sayıyı bulduğunda yeni adıma geçmesini sağlayalım. Yeni Adımda sayı aralığı farklı olsun ve bulma hakkını arttıralım.


Random r = new Random();
int rs = 0;
int s, hak = 10, adim = 1;
int son_sayi = 0;
do
{
    Console.Clear();

    if (adim == 1) { son_sayi = 100; rs = r.Next(1, 101); hak = 10; }
    else if (adim == 2) { son_sayi = 250; rs = r.Next(1, 251); hak = 15; }
    else if (adim == 3) { son_sayi = 500; rs = r.Next(1, 501); hak = 20; }
    else if (adim == 4) { son_sayi = 750; rs = r.Next(1, 751); hak = 25; }
    else if (adim == 5) { son_sayi = 1000; rs = r.Next(1, 1001); hak = 30; }

    Console.WriteLine("{0 }. Adım, Hakkınız {1} defadır.", adim, hak);
    Console.WriteLine("1 ile {0} arasında tahmin ediniz", son_sayi);
    Console.WriteLine();

    do
    {
        Console.Write("Sayı Giriniz: ");
        s = int.Parse(Console.ReadLine());
        hak--;

        if (hak == 0)
            Console.WriteLine("Hakkınız bitmiştir...");
        else if (s < rs)
            Console.WriteLine("Büyük sayı giriniz... Kalan hakkınız {0}", hak);
        else if (s > rs)
            Console.WriteLine("Küçük sayı giriniz...Kalan hakkınız {0}", hak);
        else
        {
            Console.WriteLine("Tebrikler bildiniz...");
            adim++;
        }

    }
    while ((s != rs) && (hak != 0));
    Console.Write("Devam etmek istiyormusunuz?(e/h): ");
    char k = char.Parse(Console.ReadLine());
    if ((k != 'e') && (k != 'E')) break;

}
while (true);

Ödev: Klavyeden bir isim girilecek girilen ismin harflerini alt alta yazdıran C# programını yapınız.(do-while ile)

Ödev: Klavyeden iki sayı girilecek girilen sayılar arasında çift olanları ekrana yan yana yazdıran C# programını yapınız. (do-while ile)

Ödev: Klavyeden sayılar girilecek  girilen sayılar 100 ile 500 arasında ise tekleri kendi arasında çiftleri kendi arasında toplayarak , çiftlerin ve teklerin toplamı 1000 üzerinde olduğunda sayı girişi bitirilip tekler ve çiftler in toplamı ayrı ayrı ekrana yazdıran c# uygulamasını yapınız.

Ödev : 1 ile 1000 arasında rastgele sayılar tutulacak, her tutulan sayı ekrana yazdırılacak tutulan sayılardan çift olanları toplanacak ve tutulan rastgele sayı değeri 1000 olduğunda sayı tutma işlemi bitirilerek çiftlerin toplamı ekrana yazdıran c# uygulamasını yapınız.

Yorumlar

zeynep kullanıcısının resmi
zeynep

klavyeden sıfır sayısı girilene kadar yazılan sayıları toplayıp sonucu ekrana yazdıran programı do while döngüsü ile yazınız?

recep kullanıcısının resmi
recep
int sayi=0,toplam=0;
do
{
    Console.Write("Sayı Girin: ");
    sayi=int.Parse(Console.ReadLine());
    toplam += sayi;
    if (sayi==0) break;//yada aşağıda while(!(sayi==0)); şeklinde yapılabilir
}
while (true);
Console.WriteLine("Sayıların toplamı:{0}",toplam);
Console.ReadKey(); 
Bilal Örük kullanıcısının resmi
Bilal Örük

klavyeden girilen sayının tek olduğunu bulan program

recep kullanıcısının resmi
recep
int sayi;
Console.Write("Bir sayı giriniz: ");
sayi =int.Parse(Console.ReadLine());
if(sayi % 2 == 0)
Console.WriteLine("Girilen sayı ÇİFT");
else
Console.WriteLine("Girilen sayı TEK");
Console.ReadKey();
ecem kullanıcısının resmi
ecem

1- klavyeden x girilene kadar olan harfleri ekrana yazdıran program ( küçük harf ise büyük harfe büyük harf ise küçük harfe dönüştürsün) bunu yaparmısınız lütfen en sade basit haliyle olsun

recep kullanıcısının resmi
recep
string karakter;
do
{
     Console.Write("Karakter Gir: ");
     karakter = Console.ReadLine();
     if (karakter == karakter.ToUpper())//karakter ile karakteri büyük harfe çevri mi eşit ise A==A büyüktür.
            Console.WriteLine(karakter.ToLower());
      else
            Console.WriteLine(karakter.ToUpper());
}
while (!((karakter == "x") || (karakter == "X")));// x veya X'e basılana kadar devam eder. 
//karakter x eşit veya X eşit değilse devam et.

Sorunuzun yanıtı bu şekilde olabilir.
Sorularınızı soru sor bölümünden sorabilirsiniz.

MUSTAFA kullanıcısının resmi
MUSTAFA

Klavyeden girilen sayıya kadar karekökü olan sayıları ekrana yazdıran program
ör: 4,9,16,25,36,49,64,81,100

recep kullanıcısının resmi
recep
int girilem_sayi;
Console.Write("Bir sayı giriniz: ");
girilem_sayi = int.Parse(Console.ReadLine());

for (int i = 0; i <= girilem_sayi; i++)
{
      //Math.Sqrt değişkeninin karekökünü ondalıklı olarak alır. 2 sayısının kare kökü 1,4142.... şeklinde alır.
      double karekok_ondalikli = Math.Sqrt(i);
                
      // tür dönüşümü odalıklı sayının sadece tam sayı kısmını al. 2 sayısının kare kökü 1 şeklinde alır.
      int karekok_tam = (int)karekok_ondalikli;
                
      //ondalıklı ile tam olan çıkarıldığında 0(sıfır) olursa demek ki sayının karekökü tamdır. :)
      if (karekok_ondalikli - karekok_tam == 0) 
          Console.WriteLine(karekok_ondalikli);
}
Console.ReadKey();

 

MUSTAFA kullanıcısının resmi
MUSTAFA

klavyeden girilen sayıya kadar olan mükemmel sayıları bulan program
MÜKEMMEL SAYI = 6 sayısının toplamı = 6=1+2+3 gibi

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

Kendisi hariç bütün pozitif bölenlerinin toplamı kendisine eşit olan sayılara mükemmel sayı denir.

6 bir mükemmel sayıdır. 6'nın pozitif bölenleri 1,2,3 ve 6'dır. Kendisi hariç diğer bölenlerini toplarsak 1+2+3=6 eder.
28 de mükemmel sayıdır. 1 + 2 + 4 + 7 + 14=28

C# ile bunu aşağıdaki gibi bulabiliriz.

long sayi;
Console.Write("Sayıyı Giriniz: ");
sayi = long.Parse(Console.ReadLine());
long toplam = 0;

for (long a = 1; a <= sayi; a++) // 1 den başlayarak girilen sayıya kadar tek tek bakma 1,2,3,4,5,...
{
    toplam = 0;
    for (long b = 1; b <=a/2; b++)// üsteki döngüdeki her değerin kendisine kadar
    {

        if (a % b == 0)// sayının tam bölenlerini bulup toplama
        {
            toplam = toplam + b;
        }

    }
    if (a == toplam) // tam bölenleri kendisine eşit ise
    {
        Console.Write("{0} ", a);
    }

}

Console.ReadKey();

 

METİN kullanıcısının resmi
METİN

klavyeden girilen herhangi bir sayının içindeki karekökü olan sayıları ekrana yazan programı bulur musunuz
Örneğin 100 sayısını girdiğimizde 100 sayısının içindeki karekökü olan sayıları göstersin=1,4,9,16,25,36,49,64,81,100

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

Üstte bir sorunun aynısı sanırım, cevabı aşağıdaki gibi olabilir.

int girilem_sayi;
Console.Write("Bir sayı giriniz: ");
girilem_sayi = int.Parse(Console.ReadLine());

for (int i = 1; i <= girilem_sayi; i++)
{
       //Math.Sqrt değişkeninin karekökünü ondalıklı olarak alır. 2 sayısının kare kökü 1,4142.... şeklinde alır.
       double karekok_ondalikli = Math.Sqrt(i);

       // tür dönüşümü odalıklı sayının sadece tam sayı kısmını al. 2 sayısının kare kökü 1 şeklinde alır.
       int karekok_tam = (int)karekok_ondalikli;

       //ondalıklı ile tam olan çıkarıldığında 0(sıfır) olursa demek ki sayının karekökü tamdır. :)
       if (karekok_ondalikli - karekok_tam == 0)
       {
            // Console.WriteLine("Sayı {0}, Karekökü {1}",i, karekok_tam); //sayı ve karekökü
            Console.Write("{0} ", i);
       }
}
Console.ReadKey();

 

Kadir Kökmen kullanıcısının resmi
Kadir Kökmen

Seri ve paralel direnç hesaplayan programı yazabılır mısınız

gül kullanıcısının resmi
gül

while döngüsü ile girilen iki sayı arasındaki sayıların tek olanlarını bulduran program

Barış kullanıcısının resmi
Barış

static void Main(string[] args)
{
// while döngüsü ile girilen iki sayı arasındaki sayıların tek olanlarını bulduran program
int sayı;
Console.Write("LÜTFEN BİR SAYI GİRİNİZ:"); sayı = int.Parse(Console.ReadLine());
for (int i = 0; i <= sayı; ) break;
{

Console.Write(sayı+"=");
}
while (sayı%2==1)
{
Console.Write("BU BİR TEK SAYIDIR"); break;
}
while (sayı%2==0)
{
Console.Write("BU BİR ÇİFT SAYIDIR"); break;
}

Console.ReadKey();
}
}
}

recep kullanıcısının resmi
recep
int s1, s2;
Console.Write("Birinci sayıyı gir: ");
s1 = int.Parse(Console.ReadLine());
Console.Write("İkinci sayıyı gir: ");
s2 = int.Parse(Console.ReadLine());
while (s1<=s2)
{
     if (s1 % 2 == 1) Console.WriteLine(s1);
     s1++;
}
Console.ReadKey();

 

Barış kullanıcısının resmi
Barış

klavyeden 4 haneli şifre girdiğimizde kabul etmesi, hatalı girersek de hatalı girdiniz yazması ve 3 deneme hakkımızın olduğunu gösteren program

Harun kullanıcısının resmi
Harun

static void Main(string[] args)
{
// 4 haneli şifre=5876 3 deneme hakkınız var
int sayı, sayac = 4;
for (int i = 0; i < 3; i++)
{

sayac--;
Console.WriteLine("\t\tLÜTFEN KART ŞİFRESİNİ GİRİNİZ");
Console.Write("{0} DENEME HAKINIZ VAR:", sayac); sayı = int.Parse(Console.ReadLine());
while (sayı == 5876)
{
Console.WriteLine("ŞİFRE KABUL EDİLDİ"); break;
}
while (sayı != 5876)
{
Console.WriteLine("ŞİFRE YANLIŞ GİRİLDİ"); break;
}

}
Console.ReadKey();
}
}
}

Hüseyin kullanıcısının resmi
Hüseyin

30 kişilik bir sınıfta öğrencilerin yaşlarının ortalamasını bulan programı, algoritmasını ve akış şemasını bulun
Do while Döngüsü İle bunun cevabını acil alabilirmiyimmm

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

Akış şeması algoritmasını çizme işlemini biraz uğraşarak çizebilirsiniz.

//1)başla
//2)sayısal yas,toplam=0,sayac=1
//3)1 den 30'a kadar döngü
//4)yaşı gir
//5)girilen yaşı topla
//6)döngü bitir(30 olduğunda)
//7)toplamı 30 böl yazdır
//8)bitti

int yas, toplam = 0;
int sayac=1;
do
{

    Console.Write("{0} . öğrencinin yaşını gir: ",sayac);
    yas = int.Parse(Console.ReadLine());
    toplam += yas;

} while (sayac <= 30);
Console.Write("Sınıfın yaş ortalaması {0} ", toplam / 30);
Console.ReadKey();

 

Adsız kullanıcısının resmi
Adsız

Lütfen fibonacci sayıları ekrana yazan programı yapabilir misiniz
fibonacci:Her sayının kendinden önceki toplanmış hali:) Yaparken kolay gelsin

recep kullanıcısının resmi
recep
//(0 1) 1 2 3 5 8
// b i
//   b  i
//      b i
//        b i
//          b i

long b =0 ;
long i = 1;
long gecici = 0;
Console.Write("Fibonacci dizinisin kaç elemanını gösterilsin: ");
long eleman = int.Parse(Console.ReadLine());
for (int x = 1; x <= eleman; x++)
{
    //yukarıdaki açıklamayı yapmak için aşağıdaki gibi atamalar yapmalıyız.
    Console.Write("{0} ", b); // b'yi yazdır.
    gecici = i;//i'yi geçici bir yere ata.
    i = b + i;// b ile i'yi topla
    b = gecici; //geçiciyi b'ye ata. 
}
Console.ReadKey();

 

recep kullanıcısının resmi
recep
int toplam = 0;
//for ile
for (int x = 1; x <= 100; x++)
{
    toplam += x;     
}
Console.WriteLine("Toplamları {0}", toplam);
//do-while ile
int i = 0;
toplam = 0;
do
{

    toplam += i;
    i++;
} while (i<=100);
Console.WriteLine("Toplamları {0}", toplam);
Console.ReadKey();

 

Fatih kullanıcısının resmi
Fatih

diziler konusunu anlatırmısınız

Fatih kullanıcısının resmi
Fatih

menü sorusu soracam lütfen acil lazım kullanıcı kendi isteğine 5 soru gircek 2'yi seçtiğimizde yazdığımız soruları bize soracak ve cevap verince programın sonunda cevaplar gösterilecektir anket soruları test şeklinde olacaktır

1)anketi hazırla

2)ankete başla

3)anketin cevaplarını göster

4)progtamdan çıkış

Omer kullanıcısının resmi
Omer

Verilen bir matriste pozitif ve negatif sayilari bulan program yazarmisiniz hacam 

Omer kullanıcısının resmi
Omer

Sag ve sol kosegenleri uzerinde bulunan bir matrisin maximum degerini bulan program 

İrem kullanıcısının resmi
İrem

hocam elimizde 2 tane string olsun. N ve c. kullanıcıdan değer alıyoruz mesela NNCNNC gibi. N değerleri sayıları c değerleri büyük küçük harf farketmeksizin harfleri yazdırsın. yani sonuç 59V71a gibi birşey yazar mısın?

suat kullanıcısının resmi
suat

Kullanıcının girdiği 20 sayıdan 5 e bölünenleri bulan program 

semih  kullanıcısının resmi
semih

  Klavyeden girilen N tane sayı ile ilgili aşağıdaki menü yardımı  ile işlem yapan programı yazınız.

     Programın Menüsü:

     N sayısını giriniz:10

     -------MENÜ------

     1-En Büyük Sayıyı Bul

     2-En Küçük Sayıyı Bul

     3-En Büyük ile En Küçük Sayı Arasındaki Farkı Hesapla

     4-Sayıların Ortalamasını Hesapla

     5-Sayıların Toplamını Hesapla

     6-Çıkış

 

Kurallar:

  • N Sayısı dışarıdan girilecektir. N sayısı kadar sayı ile işlem yapılacaktır.

 

  • N değeri en az 2 olabilir. 2 den küçük sayı girilirse uyarı verecektir.

 

  • Ortalama hesabında sonuç ondalıklı ise ondalıklı sonucu göstermelidir.

 

  •  
  •  
  • Tanımlanacak değişkenler anlamlı olacak şekilde verilecektir. Örn toplama işlemi sonucunu tutacak değişken int toplam; şeklinde tanımlacaktır.

 

  • Önemli yerlerde açıklama satırları konulacaktır.
    Örn. // ara toplam işlemi yapılıyor
Ayşe  kullanıcısının resmi
Ayşe

Girilen bir sayıda (maksimum 4 basamaklı) hangu rakamdan kaç tane oldugunu bulan c dilinde program nedir?(dizileri (array) kullanmadan yalnızca if for veya while kullanarak) yardımcı olursanız sevinirim

mustafa  kullanıcısının resmi
mustafa

Klavyeden 34 kişilik sınıfın programlama notları girilecek. Sınıfın ortalamasını bulan programı yapın.

Yardımcı olursanız çok sevinirim..  (:

Mehmet kullanıcısının resmi
Mehmet

0-200 arasindaki sayilardan 5 ve 5 kati olan sayıları bulup ekrana yazdıran c# programı kodunu yazınız diye bir sorum var cevabını bilen varmi

Cengizhan kullanıcısının resmi
Cengizhan

Klavyeden girilen sayının kaç farklı şekilde toplandığını bulan program mesala 

5 girdik

1+1+1+1+1

3+2

2+2+1

Şeklinde 

Acilll

Lutfen

Yapan bana atabilirim

cengizhan55.ck@gmail.com

 

 

ayşe kullanıcısının resmi
ayşe

33 ile 1000 arasındaki tek sayilarin toplamını ve 3`e bölünebilen sayıların ortalamasını bulan web programını javascript ile gerceklestiriniz.

Yorum ekle

Konuyla İlgili Yazılar

c# dersleri

37-C# Sıralama Algoritmaları

Sıralama Algoritması   Sıralama algoritması, karmaşık olarak girilmiş bir gurup değerin belirli bir düzende sıraya sokulma algoritmasıdır. Örneğin... devamı...