【发布时间】:2013-10-14 15:44:07
【问题描述】:
我希望在找到一个在 x 中具有相同位置的对象后立即停止两个循环。
这是我的 C++ 代码:
for(int i = 0; i < sizeArray; ++i){
for(int j = i; j > 0; --j){
if (s[i].positionX == s[j-1].positionX){
s[i].positionY = s[j-1].positionY;
}
}
}
如果我使用break;,它只会跳出内部 for 循环。阻止两者的最佳方法是什么?
选项:
- 将循环的索引设置为最大值(或最小值)以终止循环。
- 将所有这些放在一个函数中并使用 return。
- 使用转到
- 使用 Lambda
- 将布尔停止代码设置为 true、break,然后监听 break 并跳出其他循环?
- ?
【问题讨论】:
-
while 语句(例如 while x != y)能解决您的问题吗?
-
休息;可以解决问题
-
我已经在 if 语句中尝试过 break 但它不起作用。
-
由于内部循环中没有使用
j,因此内部循环唯一要做的就是在i为零时跳过if语句。你的代码正确吗?也许您打算在当前有i-1的地方使用j? -
是的,抱歉。它应该是 s[j-1].positionX 和 s[j-1].positionY
标签: c++ loops for-loop if-statement