Hey Jungs irgendwie neu in der Programmierwelt und ich weiß, dass Sie alle Eingabe als String einlesen sollten, aber das ist nur ein einfaches Programm, und ich habe ein Gehirn Furz denke ich aber hier meine Frage ist ...... warum, wenn ich q drücken zu beenden bin ich eine Endlosschleife immer und wie würde ich das während kondensieren Schleifen, weil das Brutto sieht hier ist das, was ich bisherWarum habe ich diese Endlosschleife
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
int grade;
char quit = 'a';
cout << "Input your grade (0-100): ";
cout << endl;
cin >> grade;
while (grade < 0) {
cout << "If you have a negetive grade....drop out! otherwise enter another grade" << endl;
cin >> grade;
}
while (quit != 'q') {
while (grade < 0) {
cout << "If you have a negetive grade....drop out! otherwise enter another grade" << endl;
cin >> grade;
}
if (grade == 100) {
cout << "You got a perfect grade!" << endl;
cout << "Letter grade: A" << endl;
}
else if (grade >= 90 && grade <= 100) {
cout << "Letter grade: A" << endl << endl;
}
else if (grade >= 80 && grade <= 89) {
cout << "Letter grade: B" << endl << endl;
}
else if (grade >= 70 && grade <= 79) {
cout << "Letter grade: C" << endl << endl;
}
else if (grade >= 60 && grade <= 69) {
cout << "Letter grade: D" << endl << endl;
}
else if (grade < 60) {
cout << "Letter grade: F" << endl << endl;
}
else {
cout << "Invalid grade!" << endl;
}
cout << " would you like to enter another grade? or press q to quit" << endl;
cin >> grade;
}
system("pause");
return 0;`enter code here`
}
Sie scheinen nie wirklich die Variable 'quit' zu ändern. –
Sie testen, ob 'quit' ungleich dem Buchstaben 'q' ist, jedoch setzen Sie die Variable explizit oben auf 'a' und aktualisieren sie nie. Ich schlage vor, Sie ändern Ihre zweite 'while' Bedingung zu' while (quit! = Grade) 'und initialisieren' quit' zu 'q'. Es ist bei weitem nicht der schönste Ansatz, aber es sollte funktionieren! –