C# Switch case ile döngünün içinden çıkmak

Kodum malesef pek okunaklı değil. Buraya atmam durumunda pek bişey anlaşılmayacaktır ama şöyle basit bir şekilde anlatabilirim sanırım. İsterseniz atabilirim genede kodu.
C#:
for(int i=0;i<10;i++)
{
    switch(i)
    {
        case 1:
            if(DöngüyüKırmamGerekenBirDurum==true)
            {
                break; //Burada komple döngüyü kırmam gerekiyor ama bu komut sadece switch case i kırıyor.
            }
    }
 
}

For dışına bir bool değişken ekle.
Case1'e if yerleştir, Bool'u true yap.

Switch dışına da bir if yerleştir, bool true ise break çalıştır, döngüyü kırsın.
 
For dışına bir bool değişken ekle.
Case1'e if yerleştir, Bool'u true yap.

Switch dışına da bir if yerleştir, bool true ise break çalıştır, döngüyü kırsın.
Evet. Pek verimli olmayacak olsa da.

C#:
        _ = 0;
        for(int i=0;i<10;i++)
        {
            if (_) {
                break;
            }
            switch(i)
            {
                case 1:
                    if(i == 1)
                    {
                        _ = 1;
                        Console.WriteLine("Switch bitti.");
                        break;
                    }
            }   
        }

Şahsen bu algoritma mantıklı değil.
Katılıyorum. Mantıksız ve verimsiz.
 
Tam olarak ne yapmak istediğinizi anlatabilir misiniz?

Şahsen bu algoritma mantıklı değil.
Bir filtreleme sistemi. Düzensiz dizileride kullanarak birşeyler yapmaya çalıştım ama pek mantıklı olmadığını bende farkettim. Genede merak ettiğim için sormuştum yapılabilirmi diye. Teşekkür ederim yardımcı olan herkese.
 
Tuhaf bir şey yapmaya çalışıyorsunuz. Bunu switch içinde nasıl yapacağınızı araştırmak yerine alternatiflere yönelin. Ne yapmaya çalıştığınız anlaşılmıyor ama yanlış metodu kullandığınız belli.

Ha illa switch case kullanacaksanız switch komutundan önce if koyun döngüden çıkmak için. Ya da (ki kötü kod dizaynı) switchten önce bir değikeni 0’a ayarlayın, switch içindekiki o ifte de değişkene 1 atayın. Switchin sonunda o değişken 1’se looptan çıkın.
 

Yeni konular

Geri
Yukarı