İF Kullanmadan Karşılaştırma

TP Okuru

Kilopat
Katılım
20 Aralık 2014
Mesajlar
570
Çözümler
8
Yer
Trabzon
Merhabalar ;
Resimdeki C# çalışmamda yapmış olduğum İF komutu kullanarak üçgen tiplerini bulmaktı. Bunu biraz farklı yoldan yapmam gerekiyor. Hocamız İF kullanmadan döngü ile yapabilirsin dedi. Baya bi kafa yordum fakat çözüm yolu bulamadım. While döngüsü ile yapabiliyorum fakat oda aynı İF'e denk geliyor. Bunu For döngüsü ile yapmanın bir yolu var mıdır ?
Fikri veren olursa devamını getirebileceğime inanıyorum. Yardımlarınızı bekliyorum.
 

Dosya Ekleri

  • Adsız.png
    Adsız.png
    71,6 KB · Görüntüleme: 482
If yerine Switch kullandım. Tek for döngüsü hem üçgen olup olmadığı hem de üçgen çeşidi kontrolü için yeterli oldu. Takıldığınız nokta olursa sorarsınız.

Kod:
        static void Main(string[] args)
        {
            int[] kenarlar = new int[3];
            Console.Write("1:");
            kenarlar[0] = Convert.ToInt32(Console.ReadLine());
            Console.Write("2:");
            kenarlar[1] = Convert.ToInt32(Console.ReadLine());
            Console.Write("3:");
            kenarlar[2] = Convert.ToInt32(Console.ReadLine());

            bool üçgenmi = true;
            int eşitkenar = 0;
            for (int i = 0; i < 3; i++)
            {
                üçgenmi = kenarlar[i] > Math.Abs(kenarlar[(i + 1) % 3] - kenarlar[(i + 2) % 3]) && kenarlar[i] < kenarlar[(i + 1) % 3] + kenarlar[(i + 2) % 3];
                eşitkenar += Convert.ToInt32(kenarlar[i] == kenarlar[(i + 1) % 3]);

                switch (üçgenmi)
                {
                    case false:
                        Console.WriteLine("Bu bir üçgen oluşturmaz.");
                        Console.ReadLine();
                        return;
                }

                //if (üçgenmi == false)
                //{
                //    Console.WriteLine("Bu bir üçgen oluşturmaz.");
                //    Console.ReadLine();
                //    return;
                //}
                
            };

            switch (eşitkenar)
            {
                case 0:
                    Console.WriteLine("Çeşitkenar");
                    Console.ReadLine();
                    break;
                case 1:
                    Console.WriteLine("İkizkenar");
                    Console.ReadLine();
                    break;
                case 3:
                    Console.WriteLine("Eşkenar");
                    Console.ReadLine();
                    break;
            }

        }
 
Son düzenleme:
If yerine Switch kullandım. Tek for döngüsü hem üçgen olup olmadığı hem de üçgen çeşidi kontrolü için yeterli oldu. Takıldığınız nokta olursa sorarsınız.

Kod:
        static void Main(string[] args)
        {
            int[] kenarlar = new int[3];
            Console.Write("1:");
            kenarlar[0] = Convert.ToInt32(Console.ReadLine());
            Console.Write("2:");
            kenarlar[1] = Convert.ToInt32(Console.ReadLine());
            Console.Write("3:");
            kenarlar[2] = Convert.ToInt32(Console.ReadLine());

            bool üçgenmi = true;
            int eşitkenar = 0;
            for (int i = 0; i < 3; i++)
            {
                üçgenmi = kenarlar[i] > Math.Abs(kenarlar[(i + 1) % 3] - kenarlar[(i + 2) % 3]) && kenarlar[i] < kenarlar[(i + 1) % 3] + kenarlar[(i + 2) % 3];
                eşitkenar += Convert.ToInt32(kenarlar[i] == kenarlar[(i + 1) % 3]);

                switch (üçgenmi)
                {
                    case false:
                        Console.WriteLine("Bu bir üçgen oluşturmaz.");
                        Console.ReadLine();
                        return;
                }

                //if (üçgenmi == false)
                //{
                //    Console.WriteLine("Bu bir üçgen oluşturmaz.");
                //    Console.ReadLine();
                //    return;
                //}
               
            };

            switch (eşitkenar)
            {
                case 0:
                    Console.WriteLine("Çeşitkenar");
                    Console.ReadLine();
                    break;
                case 1:
                    Console.WriteLine("İkizkenar");
                    Console.ReadLine();
                    break;
                case 3:
                    Console.WriteLine("Eşkenar");
                    Console.ReadLine();
                    break;
            }

        }
Değerli zamanınızı bana ayırdığınız için çok teşekkür ederim.
 
Uyarı! Bu konu 9 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Yeni konular

Geri
Yukarı