What is the difference between @(posedge clk) begin end.... and @(posedge clk);?

Description about both the snippets, you have given, is below :

First Snippet :
When the execution flow comes to the “@(posedge clk) begin-end statement”, the simulator wait for the triggering event(positive edge) on the clk and when it triggers, the piece of code covered within begin-end block will execute.

Second Snippet :
When the execution flow comes to the “@(posedge clk) begin-end statement”, the simulator wait for the triggering event(positive edge) on the clk. Until the triggering even happen, it blocks the following code and when it triggers, the execution flow goes to the next statement.