#include <stdio.h>
int main(){
for (printf ("3"); printf("2"); printf("1")) break;
return 0;
}
Czy może mi ktoś wyjaśnić, jak to działa? Dlaczego tam jest drukowany 32? Gdy kręcę tarczowe, okazuje się pętla, a ona drukuje 12?
#include <stdio.h>
int main(){
for (printf ("3"); printf("2"); printf("1")) break;
return 0;
}
Czy może mi ktoś wyjaśnić, jak to działa? Dlaczego tam jest drukowany 32? Gdy kręcę tarczowe, okazuje się pętla, a ona drukuje 12?
Pierwszy, printf ("3")
działa, więc drukuje 3
. Następnie printf("2")
działa, drukowanie 2
. Bo printf()
zwracana wartość to ilość drukowanych znaków, który w tym przypadku jest równa 1
i dlatego, że 1
jest niezerowym, cykl trwa w ciele. Pierwsze stwierdzenie w ciele-to break
, co oznacza wyjście z pętli. W ten sposób cykl się kończy. Tak więc, wynik na ekranie wygląda tak 32
printf("3")
wywoływana jest podczas inicjalizacji pętli for.
printf("2")
wywoływana jest, aby dowiedzieć się, czy powinna zakończyć się iteracja pętli.
Funkcja printf() zwraca liczbę drukowanych znaków, która jest równa 1, w obu przypadkach, więc cykl postanawia wykonać.
Ciało cyklu po prostu break
w ten sposób cykl kończy się w tym miejscu, a program kończy się.