pętla while

0

Potrafi mi ktoś wytłumaczyć jak są wykonywane obliczenia ze wynik zwrócony wynosi -5 ?

{
            int a = 2, b = 3, c = 5;
            while
                
               ( (b>=1) && (a++<3))
                
            { 
                c *= --b-a; break; 
            }

            Console.WriteLine(c);
        }
0

W warunku, a jest postinkrementowane, ++, (w wyrażeniu uzyta jest aktualana wartość, dalej jest o jeden wieksza), w jedynym obiegu petli:
c = c * (--b) - a;
a w tym momenecie wynosi 3 (j.w.), b jest predekrementowane, --, czyli już w aktualnym wyrażeniu jest mniejsze o jeden, stąd:
c = 5, b = 2, a = 3, więc
c = 5 * (2 - 3) = -1.

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