Originally Posted By: Uhrwerk
Ist mir auch schleierhaft wie das bei korrekter Einrückung passieren soll...

  • Erstens kann man sich nicht immer auf die Einrückung verlassen (viele Editoren haben gar keine automatische Einrückung).
  • Zweitens können Einrückungen durch einen Syntaxfehler (z.B. eine vergessene Klammer an irgendeiner Stelle im Programm) auch falsch sein. Man merkt den Fehler mit der falschen Einrückung dann vielleicht erst zu spät (beim Compilieren), nachdem man in dem Glauben, dass die Einrückung richtig ist, bereits andere Fehler eingebaut hat.
  • Drittens kann das Coding so lang sein, dass man die Klammern bzw. die Einrückung gar nicht auf einer Bildschirmseite sieht.
    Nur mal ein Beispiel:

Code:
//Man sieht am Bildschirm genau diesen Ausschnitt:
--------------------------------------------------
 if(a == b)
   Tu_das(1);
 Tu_das(2);
 Tu_das(3);
 Tu_das(4);
--------------------------------------------------


Jetzt könnte man glauben, dass sich das Ende des IF-Blocks, also das "}" auf der nächsten Seite befindet, und dass sich all die "Tu_das" innerhalb des IF-Blocks befinden.

Oder ein anderes Beispiel:
Code:
//Dieses Coding befindet sich auf der vorherigen
//Seite, und kann nicht gesehen werden:
------------------------------------------------
while(1) {
------------------------------------------------
//Dieses Coding befindet sich auf der sichtbaren
//Seite:
------------------------------------------------
 if(a == b)
   Tu_das(1);
 Tu_das(2);
 Tu_das(3);
 Tu_das(4);
 }           //<-- eigentlich das Ende vom While, könnte
             //    aber für das Ende vom IF gehalten werden.


Man könnte hier also sehr leicht das Ende vom "WHILE" für das Ende vom "IF" halten, und glauben, dass auch die Tu_das(2 bis 4) zu dem IF-Block gehören. Man würde das Coding also falsch interpretieren.
Wenn man nicht so genau schaut, könnte man also glauben, dass das Coding so aussieht:
Code:
if(a == b) {
   Tu_das(1);
 Tu_das(2);
 Tu_das(3);
 Tu_das(4);
 }