@lanodan In C, braces are not part of the loop syntax, they are an independent entity to group several lines. It is just very convenient to loop over a series of lines rather than one.
For and while loops do need semicolon when they are not followed by braces. E.g:
while (a++ < 10);
So it's the braces what remove the need for a semicolon. It just happens to be the most common setup.