-1
我在做什么错?我有一个菜单,可以循环,而cLetter不等于'Q'。C++循环虽然不等于两个值
我希望能够输入'Q'或'q'并退出循环。似乎无法得到正确的语法。
编辑我被主持人要求改进问题。不知道还有什么要补充的。对于do-while循环,我希望它继续循环,直到输入“Q”或“q”。当输入“Q”或“q”时,程序应退出循环。
//开始计划
#include <iostream>
#include <string>
using namespace std;
int main()
{
double Num1;
double Num2;
double sum;
double difference;
double product;
double quotient;
char cLetter; // Selecting Integers
cout << "Please enter an integer: ";
cin >> Num1;
cout << "Please enter another integer: ";
cin >> Num2;
do {
cout << "Select a letter to perform a calculation:" << endl; // Main Menu
cout << "A for Addition" << endl;
cout << "S for Subtraction" << endl;
cout << "M for Multiplication" << endl;
cout << "D for Division (BUT NOT BY ZERO)" << endl;
cout << "N to enter 2 new numbers" << endl;
cout << "Q to Quit" << endl;
cin >> cLetter;
//Perform Calculations
sum = Num1 + Num2;
difference = Num1 - Num2;
product = Num1 * Num2;
quotient = Num1/Num2;
//Choices Made
if ((cLetter == 'A') || (cLetter == 'a')) //Addition
{
cout << "Addition" << endl;
cout << "Sum = " << sum << endl;
}
else if ((cLetter == 'S') || (cLetter == 's')) //Subtraction
{
cout << "Subtraction" << endl;
cout << "Difference = " << difference << endl;
}
else if ((cLetter == 'M') || (cLetter == 'm')) //Multiplication
{
cout << "Multiplication" << endl;
cout << "Product = " << product << endl;
}
else if (((cLetter == 'D') && (Num2 == '0')) ||
((cLetter == 'd') && (Num2 == '0'))) // Cannot be divided by zero
{
cout << "Cannot Divide by Zero!" << endl;
}
else if ((cLetter == 'D') || (cLetter == 'd')) //Division
{
cout << "Division" << endl;
cout << "Quotient = " << quotient << endl;
}
else if ((cLetter == 'N') || (cLetter == 'n')) // New Integers
{
cout << "Please enter an integer: ";
cin >> Num1;
cout << "Please enter another integer: ";
cin >> Num2;
}
else if ((cLetter == 'Q') || (cLetter == 'q')) // Quitting
{
cout << "Quitting" << endl; // Invalid Statement
}
else // invalid letter
{
cout << "Invalid letter, enter letter from list" << endl; // Invalid Statement
}
}
// while ((cLetter != 'Q') || (cLetter != 'q')); //can't seem to get this to work. Next line does.
while (cLetter != 'Q');
cout << "Goodbye!" << endl;
return 0;
}
//程序结束
你想“和”使用这些条件&&。 –
如果这封信是'Q'('cLetter!='Q''是假的),是'cLetter!='q''是真是假? – molbdnilo
你的问题不是语法。你的问题是逻辑。你的循环终止条件是“not((字母不是'Q')或(字母不是'q')”。如果你在课堂上注意到布尔代数的教导,你会知道“not B)“相当于”(不是A)和(不是B)“,因此,您的表达在逻辑上等同于”(不是(字母不是'Q'))amd(不是(字母不是'q') )“或”(字母是'Q')并且(字母是'q')“由于单个字母不能同时是'Q'和'q',因此环路条件将永远不会被满足QED –