;だけからなる空文(なにもしない)というものがある。

if (式); は、if (式) 文 の文の部分が;だけからなる空文
if (式) { ... };は、ifに支配されている文は {...} で終わり、そのあとに
if文の次に評価される空文が1つついている解釈になる。

いずれも、文法的には正しい。

式の評価自体に繰り返す意味があって、それ以上実行する必要がある
ものがない場合は、
while (式) ;
のようなループ制御文の文が空文になることも実際にある。