Brauche Hilfe [Gelöst]
-
Ich braucht eure Hilfe!
Da ich mich erst angemeldet habe weis ich nicht ob es erlaubt ist Code herreichzustellen.
Wenn dies unerwünscht ist sagt es mir bitte oder sendet mir einen Link wo man so etwas machen kann.#include <iostream> #include <stdlib.h> using namespace std; /* run this program using the console pauser or add your own getch, system("pause") or input loop */ int main() { //Variablen int produkte; int befehl; int Hamburger; int Salat; int Pommes; int Chessburger; while (befehl>0); { cout<<"Hamburger 1"<<endl; cout<<"Salat 2"<<endl; cout<<"Pommes 3"<<endl; cout<<"Chessburger 4"<<endl; cout<<"Ende 0"<<endl; cout<<"Ihre Wahl:"; cin>>befehl; switch(befehl) { case 1: cout<<"Hamburger"<<endl; Hamburger++; cout<<Hamburger; break; case 2: cout<<"Salat"<<endl; Salat++; break; default: cout<<"Error"<<endl; break; } } return 0; }Vieln Dank im voraus

-
Vielleicht solltest du dazuschreiben, was das Problem ist.
-
Initialisiere mal deine Variablen.
-
Wenn ich es kompriliere startet es zählt alle Möglichkeiten auf fragt nach meiner Eingabe: ich gebe z.B. 2 ein -> es gibt Salat aus aber die Schleife funktioniert nicht.
DAnke für die schnellen Antworten!!
-
Weil da keine Schleife ist (zumindest nicht so, wie du dir die vorstellst). Schau nochmal, ob du bei der while-Schleife alles richtig aufgeschrieben hast. Aktuell hast du Glück, dass überhaupt etwas ausgegeben wird.
-
Hallo Paul5,
um dich noch direkter drauf zu stoßen: Ein Semikolon gibt das Ende eines Befehls an. Wäre Befehl bei dir größer 0 hättest du eine Endlosschleife, da sich der Wert nie ändert.
-
Danke für die schnelle Antwort!
was könnte ich genau ändern??
-
inflames2k schrieb:
Hallo Paul5,
Ein Semikolon gibt das Ende eines Befehls an.
Hab ich schon ausprobiert wenn ich keines mache funktiniert es gar nicht.
-
Folgender Code hat die gleichen Probleme, wie Deiner.
Was erwartest Du wird ausgegeben? Was wird ausgegeben? Warum?
#include <iostream> int main() { int hamburger; while(true); { ++hamburger; std::cout << hamburger << '\n'; } }
-
Nö,
dein Code hat nicht die gleichen Probleme wie der vom TE. Denn dein Code endet in einer Endlosschleife ohne Datenausgabe, in seinem wird die Schleife garnicht betreten und nur nachfolgender Code ausgeführt.
-
while (befehl>0);Das Semikolon ist hier fehl am Platz.
-
Warum hab ich ne endlosschleife ??
Wenn ich bei Befehl 0 eingebe müsste das Programm ja aufhöhren
-
Hallo Paul5,
auf deinen Code bezog sich der Satz "Die Schleife wird garnicht betreten.".
-
Es wird das Programm auch ausgeführt allerdings nur einmal
-
Liest du überhaupt, was dir geantwortet wird!?
Weil da keine Schleife ist (zumindest nicht so, wie du dir die vorstellst). Schau nochmal, ob du bei der while-Schleife alles richtig aufgeschrieben hast.
um dich noch direkter drauf zu stoßen: Ein Semikolon gibt das Ende eines Befehls an.
Das Semikolon ist hier fehl am Platz.
-
Mir ist schon klar das da eigendlich kien Semikolon hingehört allerdings funktioniert es mit ein bisschen.
Ohne passsiert genau gar nichts!
-
Nathan schrieb:
Initialisiere mal deine Variablen.
Hast du das getan? Wie hast du befehl initialisiert?
-
// EDIT: Zu offensichtlich. - Die anderen sind etwas suptiler also entfällt der Beitrag.
-
Initialisiere mal deine Variablen.
Welchen Wert hat 'befehl' denn bei dir, wenn das while zum ersten Mal ausgeführt wird?
Edit:
Nebenbei bietet sich bei Schleifen, die mindstens einmal durchlaufen werden sollen, ein do...while an.
-
Hab der Variable befehl mal testweise 1 zugewiesen.
jetzt funktioniert nichts mehr