else if
-
hi,
ich will das hier kompilieren:
... while(Auswahl!=6) { cout<<" Menue:"<<endl; cout<<"---------------------"<<endl; cout<<"1 - GRA-Rechner starten"<<endl; cout<<"2 - Modulo starten"<<endl; cout<<"3 - Potenzierer starten"<<endl; cout<<"4 - Wurzel-zieher starten"<<endl; cout<<"5 - Dreiecks-Rechner starten"<<endl; cout<<endl; cout<<endl; cout<<"Ihre Wahl:"; cin>>Auswahl; cout<<endl; if(Auswahl==1) cout<<"GRA-Rechner wird gestartet..."<<endl; GRA(); else if(Auswahl==2) cout<<"Modulo wird gestartet..."<<endl; Modulo(); else if(Auswahl==3) cout<<"Potenzierer wird gestartet..."<<endl; Potenzierer(); else if(Auswahl==4) cout<<"Wurzel-zieher wird gestartet..."<<endl; Wurzel_zieher(); else if(Auswahl==5) cout<<"Dreiecks-Rechner wird gestartet..."<<endl; Dreiecks_rechner(); else if(Auswahl==6) cout<<"Wird beendet..."<<endl; else cout<<"Falsche Eingabe"<<endl; cout<<"/n/n/n"; } ...
doch der kompiler fasselt was von "...\main.cpp(45): error C2181: Ungültiges 'else' ohne zugehöriges 'if'"
was kann ich da machen??
thx im voraus.
-
spasty schrieb:
was kann ich da machen??
Verstehen, dass ein if oder else nur die nächste Anweisung betrifft, wenn du keine geschweiften Klammern benutzt.
-
Ein Case wäre hier schöner.
-
Hi,
Ich hab zwar leider keine Antwort oder lösungsforschlag für dich, aber eine Frage zu:cout<<endl;
cout<<endl;Ich hab sowas auch schon bei einer Programmierung in meinem Anfängerbuch
gesehen, hab aber den Sinn nicht richtig kapiert, und hab sie deswegen einfach mal weggelassen und das Proggi hat sich nicht im geringsten geändert. Also meine Frage ist, wie vermutlich schon klar geworden ist, was bewirken die
cout<<;?
Wär nett wenn einer meine Frage beantworten könnte. *wissensdurstichsei*Mfg Kim
-
cout ist eine Instanz (sprich ein spezielles Objekt) der Klasse ostream, ist also ein output-Stream und repräsentiert die Standardausgabe (stdout in C). Die Klasse ostream überlädt den Operator '<<' (gibt ihm in Verbindung mit einer Instanz von ostream eine neue Bedeutung).
somit schreibt
#include <iostream> using namespace std; int main( ) { cout << "Hello, Wordl!" return 0; }
auf den Bildschirm (bzw. in eine Konsole) welcher in den meisten Fällen die Standardausgabe darstellen sollte.
mit
cout << endl;
wird in die nächste Zeile gewechselt, was auch mit anderen Ausgaben kombiniert werden kann:
#include <iostream> using namespace std; int main( ) { cout << "Hello," << endl << " Wordl!" << endl << endl; return 0; }
Greetz, Swordfish
-
Hallo,
Thx Swordfish.Mfg Kim
-
Du musst, weil du zwei Anweisung durchführen möchtest, dem if einen Block mit geschweiften Klammern nachstellen. Ansonsten denkt der Compiler
"Ah, ein if und nur eine Anweisung. Und da kommt noch eine Anweisung, die aber immer ausgeführt wird, weil sie nicht zum if gehört. Huch, da kommt ein else. Ich kenne aber kein if, zu dem das gehören könnte."Du musst daher
if(Auswahl==1) { cout<<"GRA-Rechner wird gestartet..."<<endl; GRA(); } else if(Auswahl==2) { // usw... }
schreiben, wobei
switch (Auswahl) { case 1: cout<<"GRA-Rechner wird gestartet..."<<endl; GRA(); break; case 2: // etc. break; default: cout << "Falsche Eingabe." << endl; break; }
wohl besser wäre.