3 Nisan 2013 Çarşamba

68 - Random - Continue... Ödül Zar Atışı...


Bir döngünün içerisindesiniz... Program devam ediyor... Döngünün içindeki bir kısım kodu çalıştırdınız ve bulunduğunuz yerden geriye kalan kodları çalıştırmak istemiyorsunuz... Bu durumda iki olasılığınız var; 
1 - Döngüyü kırarsınız ve döngüden sonraki kodları çalıştırırsınız.. Yani BREAK...
2 - Döngüye devam etmek istersiniz ve döngü bir sonraki sayaç değeri için devam eder... Yani CONTINUE...

Bir önceki örnekte sonsuz sayıda ödül alabilen bir program yapmıştık... Burada ise sadece 3 defa ödül alabilen bir programımız var... Ödüllerin karşılığını program içerisinde göreceksiniz... İşin püf noktası ise her doğru tahmin yapıldığında continue komutu ile döngünün devam ettirilmesi ve ilk yanlış cevap da ödülün belirlenip, break komutu ile döngünün kırılması... Continue ve break komutu için güzel bir örnek... İnceleyin... 

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)
        {
            int odul = 0;
            Random x = new Random();

            for (int i = 1; i <=3; i++)
            {
                int sayi = x.Next(1, 6); // Zar atışını yaptırıyoruz... 
                Console.Write("1-6 Arasında " + i + ". zar atışını yapınız...:" + sayi);
                int giris = int.Parse(Console.ReadLine());

                if (giris == sayi) // Sayıyı bulduğumuzda bu kısım çalışır... 
                {
                    odul++; // Her bulunduğunda ödül bir artırılıyor... 
                    Console.WriteLine("Tebrikler! " + i + ". Zar Atışınız Doğru.");
                    continue; // Döngünün başına geri dönülüyor... Bundan sonraki komutlara bakılmıyor... 
                }
                else
                {
                    // Eğer yanlış tahmin yapılırsa ödül kısmına geçiş yapılıyor... 
                    Console.WriteLine(i + ". Oyunda Yanlış Bildiniz... Oyun Bitti...");

                    if (odul == 0) // odul sıfır ise para yok...
                        Console.WriteLine("Ödülünüz = 0 TL");
                    else if (odul == 1) // odul 1 ise 10000TL para...
                    {
                        Console.ForegroundColor = ConsoleColor.Yellow; // Sarı renkte yazı yazmamızı sağlayan komut... 
                        Console.WriteLine("Ödülünüz = 10.000 TL");
                    }
                    else if (odul == 2)
                    {
                        Console.ForegroundColor = ConsoleColor.Blue;
                        Console.WriteLine("Ödülünüz = 25.000 TL");
                    }
                    break; // Ödülü verdikten sonra programı bitiriyoruz... Bunun için döngüden çıkmamız yeterli... 
                }
            }

            // Bunu döngünün dışına koymak zorunda kaldık... Döngünün içine koyarsak,
            // continue komutu programın bu kısmına ulaşmamızı engelliyor...
            if (odul == 3)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("Ödülünüz = 50.000 TL");
            }

            Console.ReadKey();
        }
    }
}