#include <stdio.h>
int main()
{
int i = 1;
while (i <10)
i *= 2;
i++;
printf("%d", i);
}
Czy wie ktoś w jaki sposób działa ta pętla ? Bo nie do końca wiem dlaczego zwraca ona wartość 17 na końcu swojego działania.
Wątek przeniesiony 2016-11-13 23:57 z C/C++ przez ŁF.
#include <stdio.h>
int main()
{
int i = 1;
while (i <10)
i *= 2;
i++;
printf("%d", i);
}
Czy wie ktoś w jaki sposób działa ta pętla ? Bo nie do końca wiem dlaczego zwraca ona wartość 17 na końcu swojego działania.
i*=2 jest analogiczne dla i = i*2 (pomijając jednokrotną ewaluację i).
Tak więc pętla podwaja i dopóki i jest mniejsze (przed podwojeniem) od 10. Tak więc po wyjściu z pętli i jest równe 16. Następnie inkrementujesz i, ustalając jego ostateczną wartość - 17