Anasayfa / Yazılım / C# / While Döngüsünü İstenildiği Zaman Sonlandırmak

While Döngüsünü İstenildiği Zaman Sonlandırmak

Bu yazımda while döngüsünden istediğimiz zaman çıkacağız. Bu yazıyı okumadan önce aşağıdaki yazıya göz atınız.

While Döngüsü ile 10 Sayının Ortalamasını Bulmak

Şimdi üstteki yazıyı okudu iseniz, yazımıza kaldığımız yerden devam edelim. Projemizde şimdi bir değişiklik yapalım. Şimdi not girme sayısı 10 adet ancak ben bunu istediğim zaman kesmek istiyorum ve bu kesilen miktara göre ortalamayı bulsun. Yani diyelim ki 5 not girdim bu 5 nota göre ortalama bulunsun. İşte burada bir nevi bi kontrol yapmamız gerekiyor. Bu yazımız da da bunu yapacağım. Gayet basit bir örnek, başlangıç seviyesinde arkadaşlarımız için.

Önceki yazıdaki uygulamayı indirdi iseniz ya da oluşturdu iseniz devam ediyorum. NotHesabi.cs dosyası üzerinde aşağıdaki gibi değişiklik yapıyorum.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication5
{
    public class NotHesabi
    {
        //auto-implemented property oluşturdum
        public string DersAdi { get; set; }

        //Constructor oluşturuyorum
        public NotHesabi(string Ad)
        {
            DersAdi = Ad;
        }

        public void MesajGoster()
        {
            Console.WriteLine("{0} dersi için sınıf ortalaması hesaplama programına hoşgeldiniz", DersAdi);
        }
        //Ortalamayı hesaplayacak metodum
        public void SinifOrtalamasiHesabi()
        {
            //değişkenlerimi tanımlıyorum
            double toplam = 0;
            int sayac = 0;
            double not;
            double ortalama;
            //Döngüye girmeden ilk soru
            Console.Write("Bir not giriniz veya çıkmak için -1 yazınız: ");
            not = Convert.ToDouble(Console.ReadLine());
            //Döngümüz
            while (not != -1)
            {                
                toplam = toplam + not;
                sayac = sayac + 1;
                Console.Write("Bir not giriniz veya çıkmak için -1 yazınız: ");
                not = Convert.ToDouble(Console.ReadLine());
            }

            if (sayac != 0)
            {
                //ortalamayı buluyoruz
                ortalama = toplam / sayac;
                //yazdırma alanım
                Console.WriteLine("{0} Adet notun toplamı: {1}", sayac, toplam);
                Console.WriteLine("Notların Ortalaması: {0:F}", ortalama);
            }

            else
            {
                Console.Write("Herhangi bir not girilmedi");
            }

            Console.ReadLine();
        }

    }
}

Program.cs altında herhangi bir değişiklik yapmıyorum, aynen kalıyor.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            //Classtan bir instance alıyorum
            NotHesabi DersOrtalama = new NotHesabi("Not Hesaplama");
            DersOrtalama.MesajGoster();
            //Ortalama Hesaplama Programım
            DersOrtalama.SinifOrtalamasiHesabi();
        }
    }
}

Görüleceği üzere ben döngüm üzerinde girilen not değerini -1 ile karşılaştırdım. Yani -1 girmediği sürece döngüye devam ediliyor. Dolayısı ile burada kullandığım -1 bir nevi işaretçi bir değer, yani kontrolümü bununla sağlıyorum. -1 girilince döngüden çıkıyorum ve ortalamamı hesaplıyorum. Burada while döngüsünde karşılaştırma için -1 seçtim çünkü -1 diye bir not yok başka bir rakam seçsem çokda mantıklı olmazdı.

Bu arada kullanıcı herhangi bir not girmiş mi, girmemiş mi bunu da if else yapısı ile kontrol ediyorum. Eğer hiç not girilmedi ise else bloğundaki uyarı çalışır.

Ortalamayı formatlı yazdırmak içinde şu satırı kullandım.

Console.WriteLine("Notların Ortalaması: {0:F}", ortalama);

Burada F kullanarak bir yuvarlama yapılmasını sağlıyorum. Sadece 2 digite kadar virgülden sonrası gösteriliyor, böylelikle daha iyi bir görüntü oluşuyor bizim için, çünkü virgülden sonra uzun bir rakam sırası olması iyi değil.

2013041701

Uygulamayı aşağıdaki linkten indirebilirsiniz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir