为什么我在这个函数中的while循环出现问题
Why am I having issues with my while loops in this function?
函数用于读取两个值,最小值和最大值。如果其中一个值小于2,则会打印一条错误消息,并再次读入两个值。
我已经尝试过在min<2和max<2.我试着在or运算符的每一侧为每个条件加括号。我尝试在函数中声明两个变量,并将一个设置为等于max,将一个设为等于min,并在循环中使用这些新变量。
void read_range(int & min, int & max)
{
cout << "Enter minimum and maximum: ";
cin >> min >> max;
while (max < 2 || min < 2); {
cout << "Error. Minimum and maximum must be at least 2." << endl;
cout << "Enter minimum and maximum: ";
cin >> min >> max;
}
while (max < min) {
cout << "Error. Minimum must be less than maximum." << endl;
cout << "Enter minimum and maximum: ";
cin >> min >> max;
}
}
第二个while循环运行良好。
有两种奇怪的情况:1.如果任何一个输入的值小于2,程序将继续读取值,并且必须手动停止:
Enter minimum and maximum: 0 5
5 6
1 2
50 90
90 50
^Z
[23]+ Stopped
- 即使输入的两个值都大于2,while循环仍会执行。即使重新输入的值小于2:
Enter minimum and maximum: 5 10
Error. Minimum and maximum must be at least 2.
Enter minimum and maximum: 1 2
(program continues running after this).
此外,如果重新输入完全相同的值,则while循环不会再次执行:
Enter minimum and maximum: 5 10
Error. Minimum and maximum must be at least 2.
Enter minimum and maximum: 5 10
(program continues running after this)
感谢您的帮助。
您的第一个循环上有一个错误的;
:
while (max < 2 || min < 2); {
应该是这样的:
while (max < 2 || min < 2) {
while(max<2||min<2(;{
应该像这个
而(max<2|min<2({
输出:
输入最小值和最大值:11.错误最小值和最大值必须至少为2。
输入最小值和最大值:105.错误最小值必须小于最大值。
输入最小值和最大值:512无错误
相关文章:
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- while循环中while循环的时间复杂度是多少
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- 擦除while循环中迭代的元素
- 为什么我不能在 while 循环中创建线程?
- 退出简单while循环时出现问题
- 如果条件为TRUE(最佳方式?),则在do while循环中后置增量
- 即使没有满足他们的条件,我也无法通过一些 do-while 循环
- 嵌套While循环不起作用(C++问题)
- 如何通过替换顺序代码的while循环来添加OpenMP for循环
- 使用 GMP 的 while 循环出现问题
- 程序以使用 C++ 中的 while 循环查找一组数字的最小值
- 为什么在 while 循环中返回表达式不起作用
- 如何使用 do while 循环确定最高值和最低值
- 如何读取单个字符并在输入两个字符序列时输出? 使用 while 循环和C++
- 用于在 C++ 中使用 while 循环查找下一个素数的简单函数
- OpenCV QT,显示视频的帧(不使用while循环)
- 输入循环 while 函数
- c++中的循环(while)
- 为什么这段代码没有循环(while)