while-Schleife
-
[gelöst]
Hallo,
ich möchte wissen, wie ich die while-Schleife über eine switch-Anweisung beenden kann. Mit if(c=='4') break; geht es ja aber ich möchte das nicht mit if machen. Dafür habe ich ein nutzloses Programm geschrieben um dies auszuprobieren:// main.cpp #include "functions.h" #include <iostream> #include <cstdlib> using namespace std; int main(void){ int zahl; char c; while(true){ cout << "Wählen Sie (1-4) \n"<< endl << "Berechnung der Fakultaet (1) \n" << endl << "Zahl verdoppeln (2) \n" << endl << "Negative Zahl ausgeben (3) \n" << endl << "Programm beenden (4) \n" << endl << "Welche Option wollen Sie aufrufen: \n"; cin >> c; switch(c) { case '1': cout << "Geben Sie eine Zahl ein:"; cin >> zahl; cout << "\nDie Fakultaet ist: " << fac(zahl) << "\n\n"; break; case '2': cout << "Geben Sie eine Zahl ein:"; cin >> zahl; cout << "\nVedopplung: " << verdoppeln(zahl) << "\n\n"; break; case '3': cout << "Geben Sie eine Zahl ein:"; cin >> zahl; cout << "\nNegative Zahl: " << neg(zahl) << "\n\n"; break; case '4': break; // SO GEHT ES NICHT } if(c=='4') break; // SO ABER SCHON } system("PAUSE"); return EXIT_SUCCESS; }Ich hoffe ihr wisst eine Lösung zu dem "Problem".
Gruß
-
Dafür ist ja die Schleifenbedingung da.
[cpp]
// main.cpp#include "functions.h"
#include <iostream>
#include <cstdlib>
using namespace std;int main(void){
int zahl;
char c;
bool schleifenende=false;while(!schleifenende){
cout << "Wählen Sie (1-4) \n"<< endl
<< "Berechnung der Fakultaet (1) \n" << endl
<< "Zahl verdoppeln (2) \n" << endl
<< "Negative Zahl ausgeben (3) \n" << endl
<< "Programm beenden (4) \n" << endl
<< "Welche Option wollen Sie aufrufen: \n";cin >> c;
switch(c)
{
case '1':
cout << "Geben Sie eine Zahl ein:";
cin >> zahl;
cout << "\nDie Fakultaet ist: " << fac(zahl) << "\n\n";
break;
case '2':
cout << "Geben Sie eine Zahl ein:";
cin >> zahl;
cout << "\nVedopplung: " << verdoppeln(zahl) << "\n\n";
break;
case '3':
cout << "Geben Sie eine Zahl ein:";
cin >> zahl;
cout << "\nNegative Zahl: " << neg(zahl) << "\n\n";
break;
case '4':
schleifenende=true; // <--
}
}system("PAUSE");
return EXIT_SUCCESS;
}
-
Danke dir. Wär mir nicht so mit bool eingefallen :). In C würde man dafür eine Zahl nehmen und den wert ändern um die Schleife zu beenden oder?? Was man auch hier machen kann, wobei ich das mit bool besser finde. Danke
-
beuu schrieb:
Danke dir. Wär mir nicht so mit bool eingefallen :). In C würde man dafür eine Zahl nehmen und den wert ändern um die Schleife zu beenden oder?? Was man auch hier machen kann, wobei ich das mit bool besser finde. Danke
In C würde man einen integer als bool'sche Variable nutzen.
-
Jop in C werden Zahlen als boolsche Ausdrücke interpretiert. 0 ist false und alles ungleich 0 ist true.
-
player4245 schrieb:
Jop in C werden Zahlen als boolsche Ausdrücke interpretiert. 0 ist false und alles ungleich 0 ist true.
Und auch das nur, weil es kein bool gibt. In C++ sollte man daher unbedingt bool verwenden. Dafür ist es ja gemacht!