c++ - 在 do-while 循环中无法逃脱无限循环
问题描述
void menu_prompt(vector<int> list){
char user_input{};
do {
cout << "P - Print numbers" << endl;
cout << "A - Add a number" << endl;
cout << "M - Display mean of the numbers" << endl;
cout << "S - Display the smallest number" << endl;
cout << "L - Display the largest number" << endl;
cout << "Q - Quit" << endl << endl;
cout << "Enter your choice: " << endl;
cin >> user_input;
} while(user_input != 'P' || 'A' || 'M' || 'S' || 'L' || 'Q' || 'p' || 'a' || 'm' || 's' || 'l' || 'q');
if(user_input == 'P' || 'p'){
user_choice_print_numbers(list);
}
else if(user_input == 'A' || 'a'){
user_choice_add_numbers(list);
}
else if(user_input == 'M' || 'm'){
user_choice_mean_numbers(list);
}
else if(user_input == 'S' || 's'){
user_choice_smallest_numbers(list);
}
else if(user_input == 'L' || 'l'){
user_choice_largest_number(list);
}
else if(user_input == 'Q' || 'q'){
user_choice_quit();
}
}
我有一个菜单功能,我选择执行一个 do-while 循环,以便至少提示一次菜单。每当我输入以下字符时,都会再次提示菜单。我有一种直觉,这个问题要么与范围界定有关,要么与变量 user_input 的正确操作有关,因为 do-while 循环的转义是基于 user_input。
我的逻辑是“do”部分执行打印语句,并提示用户更改 user_input。如果没有输入转义语句中显示的字符,将再次提示菜单。
我没有发布整个程序,因为它有点冗长,而且我认为其他部分不会影响这个问题。但要点是某些输入将调用之前已经创建的某些函数。
解决方案
推荐阅读
- python - 如何正确使用 Keras 添加层?
- go - 从其他功能使用 mongodb 连接
- sql - SQL:从两列lat,long_更新新列作为几何点
- arrays - lua :将值存储在字符串数组中并通过调用随机索引打印值
- java - 如何使我的方法更加面向对象?
- python - RGB 浮点图像转灰度 uint8
- jupyter-notebook - jupyter-notebook 打开错误:NotImplementedError
- python - 为什么 collectstatic 复制到错误的目录?
- node.js - 使用 Bazel 构建 Node.Js Docker 映像
- javascript - Angular 8 从外部库中检索值