Witam, następująca pętla ignoruje warunek (każda z poniższych pętli oczywiście testowana na jednakowych danych).
while(a%b!=0 || b%a!=0) //<<<ignorowany warunek
{
if(a>b)a=a%b;
else if(a<b)b=b%a;
}
w poniższej postaci już go nie ignoruje ale wiadomo, brakuje warunku a%b!=0
while(b%a!=0) //<<<warunek bez "lub" juz nie jest ignorowany
{
if(a>b)a=a%b;
else if(a<b)b=b%a;
}
Wiem, że mogę zapisać to na wiele innych sposobów np. tak jak niżej, ale głównie chciałbym wiedzieć dlaczego warunek z pierwszego kodu jest ignorowany, a pętla wykonuje się w nieskończoność (w tym przypadku do błędu).
while(petla==true) //przykladowa dzialajaca petla
{
if(a>b)a=a%b;
else if(a<b)b=b%a;
if(b%a!=0)petla=false;
else if(a%b!=0)petla=false;
}