C 为什么在满足布尔条件后,我的DO-while循环就无法结束
C++ Why does my do-while loop fail to end as soon as boolean condition is met?
我当前的项目要求使用do-nile循环和单独的值生成功能进行程序。该程序要求无限期的输入数量,直到输入最后两个数字之间的差异大于12。代码可以工作,但只有在显然感觉到它时才起作用。有时它认识到布尔已经立即达到并终止,有时我可以输入15个以上的数字,直到结束,如果它甚至首先结束。如果可能的话,我想保持我的代码与目前的相似之处。我知道我需要一个前提条件,因为第一个输入与目前试图弄清楚这一点。
到目前为止,这是我的代码:
bool TwelveApart(int x, int y);
int main()
{
int num1, num2;
cout << "Enter some integers: " << endl;
do
{
cin >> num1 >> num2;
TwelveApart(num1, num2);
} while (TwelveApart(num1, num2) == false);
cout << "The difference between " << num1 << " and " << num2 << " is greater than or equal to 12." << endl;
return 0;
}
bool TwelveApart(int x, int y)
{
if (abs(x - y >= 12))
{
return true;
}
else
{
return false;
}
}
中的条件
if (abs(x - y >= 12))
不是正确的设置。它需要:
if (abs(x - y) >= 12 )
fwiw,您可以将功能简化为:
bool TwelveApart(int x, int y)
{
return (abs(x - y) >= 12 );
}
另外,您在do-while
循环中对TwelveApart
有冗余的调用。该电话没有做任何有用的事情。循环可以是:
do
{
cin >> num1 >> num2;
} while (TwelveApart(num1, num2) == false);
相关文章:
- 如果条件为TRUE(最佳方式?),则在do while循环中后置增量
- 即使没有满足他们的条件,我也无法通过一些 do-while 循环
- 如何使用 do while 循环确定最高值和最低值
- do while 循环中的 if 语句以 yes 或 no 结尾
- 使用 while 或 do while 退出循环
- 带有开关语句的 do-while 循环 -- 无穷循环错误
- 为什么当我输入一个被接受的数字时,我的 do-while 循环没有中断?
- 为什么我的 Do-while 循环无法在C++中运行菜单
- 如果语句不会在 do - while 循环中运行
- 如何在c++中读取do-while循环中的空白
- 将嵌套的 for 循环更改为 do-while 循环
- 如何修复不会在退出选择时终止的 do-while 循环
- 为什么这个do-while循环每隔一个循环只写入数组?
- C++ do/while 循环和 if/else: 骰子游戏 -- 第 75 行错误:"Cout"之前的预期"While" -- 如何解决这个问题?
- 卡在链表中的无限 Do-while 循环中
- 试图调节我的 do-while 以停止在终端中退出程序.菜单不会根据需要循环使用当前语句
- 使用基本 do-while 循环求解泊松方程
- do-while循环不会退出C
- 如何在C++中使用带有"do while"循环的计数器?
- 无休止的 do while 循环C++代码