Pętla while – skąd się bierze ujemne "k"?

0
while( k>=0)
{
  k=k-5;
  a++;
}
cout<<k; 

Dlaczego dla tej pętli pokazuje mi ujemne k skoro w warunku jest, że k>=0? Np dla k=14 pętla powinna wykonać się 2 razy (14-5=9 i 9-5=4), a nie trzy razy ponieważ k będzie wtedy już ujemne. Dlaczego jednak wykonuje się o jeden raz za dużo?

5

Prześledź działanie tej pętli np. dla k == 2:

  • k >= 0 – tak, k == 2,
  • k = k - 5 – to daje k == -3
  • a++
  • k >= 0? – nie, bo k == -3
  • count << k – wyświetli -3

Jeśli chcesz, aby k po zakończeniu działania pętli było większe lub równe 0, to warunek musisz zmienić na taki:

while(k - 5 >= 0)

Powoli ogarniesz. ;)

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