Wiem, że nie ma czegoś takiego jak goto w javie, ale nie potrafię sobie poradzić pętlami, mimo iż próbowałem. Jestem początkujący. Będę wdzięczny jeśli ktoś mi pokaże co z tym można zrobić.
Urywek kodu:
_L8:
int l = Pierwszy(j);
if(!CzyJestPusta(j)) goto _L2;
else goto _L1
_L1:
if(l != -1) goto _L4; else goto _L3
_L4:
j = l;
_L2:
int k;
if(i != 3)
k = 0;
else
k = PoszukajNajkrotszego(j);
goto _L5
_L9:
if(tablica[k].wykonany || j < tablica[k].czas_nadejscia)
break; /* Loop/switch isn't completed */
if(tablica[k].czas_zaczecia == -1)
tablica[k].czas_zaczecia = j - tablica[k].czas_nadejscia;
if(i == 1 || i == 2 || i == 4)
{
Pokaz(j, k, tablica[k].czas_trwania);
j += tablica[k].czas_trwania;
tablica[k].czas_do_ukonczenia = 0;
}
if(i == 3 || i == 5)
{
int i1 = Pierwszy(j);
if(i1 == -1 || i1 - j >= tablica[k].czas_do_ukonczenia)
{
Pokaz(j, k, tablica[k].czas_do_ukonczenia);
j += tablica[k].czas_do_ukonczenia;
tablica[k].czas_do_ukonczenia = 0;
} else
{
i1 -= j;
Pokaz(j, k, i1);
j += i1;
tablica[k].czas_do_ukonczenia -= i1;
}
}
if(i == 6)
if(tablica[k].czas_do_ukonczenia <= dl_kwantu)
{
Pokaz(j, k, tablica[k].czas_do_ukonczenia);
j += tablica[k].czas_do_ukonczenia;
tablica[k].czas_do_ukonczenia = 0;
} else
{
Pokaz(j, k, dl_kwantu);
j += dl_kwantu;
tablica[k].czas_do_ukonczenia -= dl_kwantu;
}
if(tablica[k].czas_do_ukonczenia == 0)
{
tablica[k].wykonany = true;
tablica[k].czas_zakonczenia = j - tablica[k].czas_nadejscia - tablica[k].czas_zaczecia;
}
if(i == 6) goto _L7; else goto _L6;
_L7:
continue; /* Loop/switch isn't completed */
_L6:
break; /* Loop/switch isn't completed */
k++;
_L5:
if(k < ile) goto _L9; else goto _L8;
_L3:
if(rysuj)
PokazLegende();
return j;