Opuszczanie wielu pętli

Opuszczanie wielu pętli
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam serdecznie, mam pytanie odnośnie opuszczania wielu pętli, poniżej podaje przykładowy kod:

Kopiuj
 do
            {
                for (int i = 0; i < wielkość; i++)
                {
                    for (int i = 0; i < wielkość; i++)
                    {
                        if (tablica[i, j] == gracz)
                        {
                            licznik++
                                if (licznik == wielkość)
                            {
                                break;
                            }
                        }
                    }licznik 0; // zerowanie licznika
                }
            } while(jakiś warunek);    
 

Mamy sobie jakiś taki przykładowy kod i teraz moje pytanie jest następujące, jak po spełnieniu jakiegoś tam warunku opuścić wszystkie pętle łącznie z do while ? tak żeby wyjść po za niego i wyświetlić komunikat Gracz XXX wygrywa koniec gry ?

JU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5052
0

Najprościej to zrobić tak, żeby pętla była w osobnej metodzie, wtedy po prostu dajesz return. A tak normalnie, to w każdej pętli musisz sprawdzić jakiś warunek i albo wywołać break albo nie. Np:

Kopiuj
 
bool breakAll = false;
while(true)
{
    for(...)
    {
       if(costam)
       {
           breakAll = true;
           break;
       }
    }

    if(breakAll)
      break;
}

  • Rejestracja: dni
  • Ostatnio: dni
0

Dzięki za szybką odpowiedź :)
Za chwilę sprawdzę.

T2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 194
0
Kopiuj
using System;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int licznik = 0;
            bool doExit = false;
            do
            {
                for (int i = 0; i < 100 && !doExit; i++)
                {
                    for (int j = 0; j < 100 && !doExit; j++)
                    {
                        //if (tablica[i, j] == gracz)
                        //{
                        Console.WriteLine("{0} \t{1} \t{2}", i, j, licznik);

                        licznik++;
                            if (licznik == 50)
                            {
                                doExit = true;
                            }
                        //}
                    }
                    licznik = 0; // zerowanie licznika
                }
            } while (true && !doExit);
        }
    }
}

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
0

Zaraz mnie zamordują, ale do tego służy goto:

Kopiuj
do
{
    for (...)
    {
        for (...)
        {
            if (cośtam)
                goto koniec;
        }
    }
} while(...);
koniec:

ale jak możesz przerobić na return, to przerób na return.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.