问题是我已将Char变量初始化为Q,以便LOOP不执行,但可悲的是?!我在此操作中找不到逻辑流程,这是我做错了什么,为什么LOOP即使不执行也会执行。
#include <iostream>
#include <vector>
using namespace std;
int main()
{
cout << "This program is giving you some options, each"
" option allows you to perform actions" << endl;
char options{'Q'};
vector <int> numbers {1,2,3,4,5,6,7,8,9,10};
while (options != 'Q' || options != 'q' ){
cout << " P - Print numbers " << endl;
cout << " A - Add a number " << endl;
cout << " M - Display list of the numbers" << endl;
cout << " S - Display the smallest number " << endl;
cout << " L - Display the largest number" << endl;
cout << " Q - Quit"<<endl;
cout << " Enter your choice : " << endl;
cin >> options;
// Printing Numbers
if (options =='P' || options =='p'){
for (auto x : numbers){
cout << x << endl;
}
}
}
return 0;
}
答案 0 :(得分:6)
(options != 'Q' || options != 'q' )
如所写,这是说“只要options
不是Q
或不是q
”。由于变量不能同时为q
和Q
,因此循环不会退出。
您可能想要这样:
(options != 'Q' && options != 'q')
假设只要options
不是Q
并且不是q
,循环就执行了,也就是说,变量必须没有值循环继续。
答案 1 :(得分:1)
我认为问题是您有||选项!='q',表示执行时为true。