As it is given return num-- ; so the value retuned will be that of num before decreasing it.
So, in first call, num = 7, returns 7 and becomes 6. Next call finds num = 6, returns 6 and makes num 5.
The maechanism of for loop:
Initialize expression -> Test -> Body -> Update -> Test -> Body -> Update .................continues until test expression is false.
So the values will be :
Initialize expression (returned 7, num = 6)-> Test (returned 6, num = 5) ->
Body (returned 5 printed, num = 4 ) ->
Update (returned 4, num = 3) -> Test (returned 3, num = 2) ->
Body (returned 2 printed, num = 1) ->
Update (returned 1, num = 0) -> Test (returned 0 You are terminated, num = -1) .
Values printed 52