Arama butonu
Bu konudaki kullanıcılar: 1 misafir
3
Cevap
322
Tıklama
0
Öne Çıkarma
While ve DoWhile Farkı
A
7 yıl
Binbaşı
Konu Sahibi

İnternetten java öğrenirken yazdığım sayının rakamlarını toplayan kod yazdım do while ile;

Scanner scan = new Scanner(System.in);

System.out.println("Lütfen sayıyı giriniz: ");
int sayi = scan.nextInt();
int sonuc = 0;

do {
sonuc += sayi%10;
sayi = sayi/10;

}

while (sayi > 0); {
System.out.println("Sonuç: " + sonuc);



kod başarılı bir şekilde çalışıyor fakat ben bu algoritmayı sadece while yaptığımda;

int sayi2 = scan.nextInt();
int sonuc2 = 0;

while (sayi2>0) {

sonuc2 += sayi2%10;
sayi2 = sayi2/10;


}
System.out.println("Sonuç: " + sonuc2);

Bana yine aynı sonucu veriyor. Bu algoritma yüzünden mi kaynaklanıyor ? Do while'ın farkı bildiğim kadarıyla ne olursa olsun o kod bir kere çalışacak. Peki yukarıda while niye yine başarılı oluyor ?

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



R
7 yıl
Yarbay

Do while'da değişen şu olacak. Eğer 0'dan küçük bir sayı girersen yine bir kere çalışacak.



I
7 yıl
Teğmen

While da kontrolü baştan yapıyosun. Do While da kontrolü sonda yapıyosun. Aradaki fark bu. Özel bazı durumlarda kontrolü başta veya sonda yapmanın farkı oluyor. Örnek vermeme gerek yok heralde. Anladın sen onu.



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
M
7 yıl
Yarbay

quote:

Orijinalden alıntı: Iqtam

While da kontrolü baştan yapıyosun. Do While da kontrolü sonda yapıyosun. Aradaki fark bu. Özel bazı durumlarda kontrolü başta veya sonda yapmanın farkı oluyor. Örnek vermeme gerek yok heralde. Anladın sen onu.
tam böyle değil. do while de sart ne olursa olsun en az bir kez kod blogunun için calısır sonra tekrar calıstırmaya gerek var mı diye kontrol eder. Yani önce yap sonra kontrol et gibi. Ancak cok cok az durum var ki while yerine do while kullanman gereksin. bence pek takılma.

while(false)
{
Console.Log("beni göremezsin")
}
--ekrana cıktı basmaz


do{
Console.Log("hi")
} while(false)
ekrana 1 kez hi yazar.





< Bu mesaj bu kişi tarafından değiştirildi mahoni_38 -- 15 Eylül 2018; 21:47:32 >

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.