Ohne jetzt was verbindliches zu sagen:
Ich stelle mit { und } immer als Ersatz für begin und end vor.
Bei einigen Sachen in Delphi benötige ich begin und end zwingend, kann sie aber auch zur Strukturierung an Stellen nutzen, an denen sie nicht zwingend erforderlich sind.
Analog ist es auch mit den {}.
Delphi-Quellcode:
case i of
1 : Machwas; // Begin und end nicht erforderlich.
2 : begin // Begin und end nicht erforderlich, schadet aber nicht.
machwas;
end;
3 : begin // Begin und end erforderlich.
Machwas1;
Machwas2;
end;
else
AltenativeMachen;
AltenativeMachen;
AltenativeMachen;
AltenativeMachen;
AltenativeMachen;
end;
end;
Bei der Else ginge es auch so:
Delphi-Quellcode:
else
begin
AltenativeMachen;
AltenativeMachen;
AltenativeMachen;
AltenativeMachen;
AltenativeMachen;
end;
end;
Kann man so auf C++ übersetzen, nur dass man das break nicht vergessen darf.
Oder irre ich mich da jetzt?
Und ein Fehler ist nur das, was zu einem anderen Programmablauf führt, als beabsichtigt.
Blocks zur besseren Strukturierung einzufügen, egal ob in Delphi mit begin und end oder in C++ durch { und } ist kein Fehler, allenfalls eine Geschmacksache oder ein Programmierstil, aber kein Fehler.