Schleife wird unendlich durchlaufen
-
Hallo Forum
ICh musste als Buchaufgabe aus meinem Buch "C++ Lernen und Professionell anwenden" ein Programm schreiben dass die Potenz einer Zahl berechnet.#include "stdafx.h" #include <iostream> double ergebnis=1; double pow(double x, int n) { if (x !=0 && n==0) ergebnis=1.0; else { if (x==0 && n!=0) ergebnis=0.0; else { for(int i=1;i<=n;i++) { ergebnis *=x; } } } return ergebnis; } int _tmain(int argc, _TCHAR* argv[]) { int exponent=0; double basis=0; char taste ='j'; while(taste=='j' || taste== 'J') { std::cout << " Geben Sie die Basis ein: " << std::endl; std::cin >> basis; std::cout << "Geben Sie einen Exponenten ein" << std::endl; std::cin >> exponent; pow(basis, exponent); std::cout << "Das ergebnis der potenz lautet: " << ergebnis << std::endl; do { std::cout <<"Wollen Sie neustarten? j//n" << std::endl; std::cin >> taste; } while (taste != 'J' || taste != 'j' || taste != 'n' || taste != 'N'); } std::cin.clear(); std::cin.ignore(std::cin.rdbuf()->in_avail()); std::cin.get(); return 0; }dann hab ich noch eine schleife eingebaut die überprüft ob man neustarten will oder nicht. Wenn man die Taste j drückt soll neugestartet werden wenn man n drückt soll beendet werden. Nur geht die schleife endlos weiter egal was man einigibt. Hat wer na Ahnung woran das liegen könnte?
-
mit logisch und, nicht oder, verknüpfen. du hast dir da ne tautologie geschaffen.
-
die schleife wird solange durchlaufen wie die taste nicht 'j' oder nicht 'n' ist.
-
danke für eure hilfe, das hab ich wohl übersehen
