我做错了什么?我有一个菜单,可以循环,而cLetter不等于'Q'。
我希望能够输入'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;
}
//结束程序
答案 0 :(得分:2)
一封信不能同时是q
和Q
。因此,每个字母不等于q
或不等于Q
。您需要使用逻辑和运算符(&&
),而不是逻辑或(||
)运算符:
do {
// code
} while (cLetter != 'q' && cLetter != 'Q');
// Here ----------------^