podwójny for. Jak rozwiązać?

0

Program ma działać w sposób następujący: Leci sobie i jeśli napotka liczbę kon=4 to wykona się algorytm i przejdzie od razu do następnego s!!! A jeśli nie napotka kon=4 to wykonuje się kolejne u. Możecie mi powiedzieć co robię źle?

for ( int s = 1; s <= 5; ++s)
            {
                for ( int u = 1; u <= 5; ++u)
                {  
                    (...) 
                //tutaj program dowiaduje się o liczbie kon
  
                        if (kon != 4) break ;  
                                                     (...) //algorytm
                             
                        } 
                } 
0
if (kon != 4) break;

Jeśli kon jest różne od 4, przejdź do następnego s.

Czyli nie dość, że warunek jest błędny, to algorytm się nie wykona, bo break od razu wyskoczy z pętli.

0

Hmm
if(kon == 4) {algorytm; break;}

?

0

docxxx zadziałało. A możecie mi powiedzieć jak dojdę do końca i mam s=5 to jak mogę wyjść z obu pętli?

0

for(int s=1;s<5;++s) - i samo wyjdzie

0

Poradziłem sobie bardzo nieprofesjonalnie używając goto. Ale działa :)

1
sWinny napisał(a):

Poradziłem sobie bardzo nieprofesjonalnie używając goto. Ale działa :)

Lepiej to wywal i napisz jeszcze raz. Działa jest słabym argumentem, żeby używać goto, szczególnie gdy jest się początkującym.

0
 
bool lworking = true;
for ( int s = 1; (s <= 5) && lworking; ++s)
{
    for ( int u = 1; (u <= 5) && lworking ; ++u)
    {  
        (...) 
         //tutaj program dowiaduje się o liczbie kon
 
        if (kon != 4)   
        {
            lworking = false;
        }
        else
        {
             (...) //algorytm
         } 
 
    } 
} 

1 użytkowników online, w tym zalogowanych: 0, gości: 1