Weil es so ruhig ist eine theoretische Frage
-
Bashar schrieb:
Eine Bedingung IST eine Anweisung.
ups
da hab ich mein Hirn ausgeschaltet, du hast Recht.
-
Bashar schrieb:
Nein, eine Anweisung.
else(bedingung) oder else(anweisung) ist das gleiche wie else(hü) oder else(hüpf), denn der Compiler kommt weder dazu zu hün noch dazu zu hüpfen und verabschiedet sich mit error: 'Geschweifte Klammer erwartet'
-
proggingmania schrieb:
Bashar schrieb:
Nein, eine Anweisung.
else(bedingung) oder else(anweisung) ist das gleiche wie else(hü) oder else(hüpf), denn der Compiler kommt weder dazu zu hün noch dazu zu hüpfen und verabschiedet sich mit error: 'Geschweifte Klammer erwartet'
und von welcher grabungsstätte hast du diesen steinzeitcompiler her? Erwartet wird irgendeine anweisung. und wenn diese mit runder klammer begiunnt, kann es sich nur eben nur um einen ausdruck handeln (expression statement), der mit einem semikolon abgeschlossen werden muss.
-
das ist ein troll, der WILL streiten.
-
Naja Troll hin oder her...
Ich glaub ich hab mich bei der Fragestellung verwurschtelt. *hihi*
Codefrag:
#include <stdio.h> #include <stdlib.h> int main(int argc, char* argv[]) { if(1) { printf("lala"); } else(1) { printf("alal"); } system("PAUSE"); return 0; }
Erzeugt den Fehler wegen dem ich frage.
PS.: Hab gar nicht mit so einer enormen Reaktion gerechnet
-
Jetzt ist es natürlich auch syntaktisch falsch (vorher nur inhaltlich). Was willst du denn mit der (1) hinter dem else erreichen? Meinst du vielleicht sowas wie else if(bedingung) ...?
-
else erwartet ganz einfach keine eigene Bedingung, sondern nur eine auszuführende Anweisung - also wird das (1) als "Expression Statement" interpretiert und der Compiler beschwert sich zu recht darüber, daß zwischen dieser und der nächsten Anweisung (die Block-Anweisung "{printf("alal");}) ein Semikolon fehlt.
-
@bashar
Ja es ist halt ein dummes Bsp.....
_________________________________________________________________________
....else erwartet also keine Bedingung sondern gleich eine Anweisung...
-
Kuh-Gel-Schrei-Bär schrieb:
....else erwartet also keine Bedingung sondern gleich eine Anweisung...
richtig, weil die bedingung für 'else', aber negiert, schon in dem dazugehörigen 'if' steckt, braucht man's nicht doppelt hinzuschreiben.
-
CStoll schrieb:
...und der Compiler beschwert sich zu recht darüber, daß zwischen dieser und der nächsten Anweisung (die Block-Anweisung "{printf("alal");}) ein Semikolon fehlt.
Na wer hätte das gedacht.