#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