当我的代码退出while while循环和if语句时:
if im.getpixel((258,375)) == (30,37,43):
battle = True
print('lets Battle!!')
time.sleep(10)
leftClick()
while battle == True:
mousePos(503,487)
leftClick()
leftClick()
time.sleep(5)
im = screenGrab()
if im.getpixel((258,375)) != (30,37,43) and im.getpixel((258,375)) != (99, 114, 121) and im.getpixel((258,375)) != (225, 225, 225):
battle = False
break
print('battle Over')
break
代码在while循环结束时结束:
while 1 == 1:
im = screenGrab()
if im.getpixel((258,375)) == (30,37,43):
battle = True
print('lets Battle!!')
time.sleep(10)
leftClick()
while battle == True:
mousePos(503,487)
leftClick()
leftClick()
time.sleep(5)
im = screenGrab()
if im.getpixel((258,375)) != (30,37,43) and im.getpixel((258,375)) != (99, 114, 121) and im.getpixel((258,375)) != (225, 225, 225):
battle = False
break
print('battle Over')
break
left(2)
right(2)
我已经尝试了很多年但是我不能让left()和right()运行并且循环在if语句结束后继续。
感谢您的帮助。
答案 0 :(得分:1)
您在template <typename T>
void arrayToMap(const T arr[], size_t arrSize, std::unordered_map<T, int>& map)
{
for(int i = arraySize - 1; i >= 0; --i) {
map[arr[i]] = i;
}
}
声明之后致电break
:
print
您的第一个print('battle Over')
break
语句退出第二个break
,上述while
退出您的第一个break
。
如果您不想在while
语句后退出父break
,只需删除while
语句。
答案 1 :(得分:0)
Break退出当前循环(while或for)不是'if'或'else'。使用'continue'来打破当前的迭代。并且您的代码有2个中断删除外部中断,它应该按预期工作。