Ошибка в коде с циклом и break
Всем привет, в моем коде возникла ошибка, которую даже представить не знаю как решить. Ошибка заключается в том, что выбирается рандомное число от 0 до 1, если число равняется 1, то по идее выполняется break и соответственно должно выходить из цикла. Но почему-то это не происходит и код идет дальше (если бы число равнялось 0). Вроде раньше все было хорошо, но вчера возникла эта ошибка, пытался поискать ошибки, но нигде ничего не нашел. Прошу помочь, заранее спасибо!
def MeetMonster(): Shrek.Level = rd.randint(1, 3) * Pl.Level Shrek.Hp = rd.randint(3, 10 * (Pl.Level)) * Shrek.Level + Pl.Damage Shrek.Damage = (Shrek.Level * 4) * Pl.Level Monster = rd.choice(Shrek.Name) print("Ты набрел на монстра - , у него уровень, здоровья и урона".format(Monster, Shrek.Level, Shrek.Hp, Shrek.Damage)) sleep(0.4) print() while True: choice = input("Попытаться убежать или будешь сражаться (бег/атака)?: ").lower() print() sleep(0.4) if choice == "бег": *Ошибка здесь* if rd.randint(0, 1) == 1: print("Фух, пронесло. ") print() break else: print("Монстр оказался чересчур сильным и догнал тебя. ") print() sleep(0.4) break elif choice == "атака": break else: continue *Из-за этой ошибки оно запускает вот это:* while Shrek.Hp > 0: if Pl.Critical >= rd.randint(1, 10): Shrek.Hp -= Pl.Damage * 2 print("Вы нанесли критический удар!") sleep(0.4) else: Shrek.Hp -= Pl.Damage sleep(0.4) print("Ты атаковал монстра и у него осталось", Shrek.Hp, "здоровья") sleep(0.4) print() if Shrek.Hp > 0: if Pl.Dodge >= rd.randint(1, 10): Pl.Hp -= 0 print("Вы уклонились!") sleep(0.4) else: Pl.Hp -= (Shrek.Damage - Pl.Armor) if Shrek.Damage < 0: Pl.Hp - 0 print("Монстр ударил тебя и у тебя осталось", Pl.Hp, "здоровья") print() sleep(0.4) else: corruption = Pl.Corruption corruption = 2 xp = Pl.Xp xp = rd.randint(25, 50) * Shrek.Level loot = rd.randint(5, 25) * Shrek.Level if Pl.PlusMonsterCoinDrop >0: Pl.Coins += (loot * Pl.Level * (1.0 + Pl.PlusMonsterCoinDrop)) Pl.Xp += (xp * (1.0 + Pl.PlusMonsterCoinDrop)) Pl.Corruption += 2 Pl.Score += 120 else: Pl.Coins += (loot * Pl.Level) Pl.Xp += xp Pl.Corruption += 2 Pl.Score += 100 print("Тебе удалось одолеть монстра, за что ты получил", loot, "монет,", xp, "опыта", "и", corruption, "единиц искажения" ) print() LevelUp() sleep(0.2) PrintCorruption() PrintCoins() PrintXp() PrintHp() print() Pl.MonsterKilled += 1 if Pl.Hp 50 and Place == Place
Почему не выходит из цикла for после команды break python?
Проблема:
Работает цикл While в нем запускается цикл for,
в цикле for я проверяю нет ли новых сообщений, если есть я хочу выполнить определенное действие, если нет я хочу вернуться к циклу while, использую команду break, но она не выводит меня из цикла for не могу понять почему и очень прошу помочь
for event2 in longpoll.listen(): if event2.type == VkEventType.MESSAGE_NEW: print('yes') else: break
- Вопрос задан более двух лет назад
- 268 просмотров
2 комментария
Простой 2 комментария
Ошибка в коде, оператор break
Всем доброго времени! Почему в коде на 22 строке если ставлю break то выдает ошибку, а без break работает и работает оперетор if тоже но тогда цикл вечно работает , почему так?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
# -*- coding:utf-8 -*- import random def maingame(): xodu = random.randint(1, 30) print('гравець зaявив кількість ходів', xodu) a = 0 suma_a = 0 while a xodu and suma_a 50: kubik = random.randint(1, 6) print(kubik,) a += 1 if kubik == 1: suma_a = 0 print('-> перехід ходу, гравець викинув 1 сума обнулилась') break suma_a += kubik if suma_a >= 50: print('гравець виграв') print('заявлена кількість ходів гравця -', xodu, 'ходів виконав -', a, 'сума викинута з ходів кубика -', suma_a) print('зявлена кількість ходів гравця -', xodu, 'клькість ходів -', a, 'сума викинута з ходів кубика -', suma_a) def startgame(): while 1: print('\n---- грає гравець 1 ----') maingame() print('\n----грає гравець 2 ----') maingame() startgame()
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Ошибка main.cpp:13:23: error: break statement not within loop or switch if (A[i].size() == 0) break;
Помогите решить ошибку вот сама программа #include <iostream> using namespace std; int main().
Оператор break как оператор go to next
Подскажите, в этом примере break эквивалентна действию оператора go to next?
Оператор case: ошибка в коде
в строке условия прямо после then пишет ошибку case b of 3,5,8: if.
Оператор break
Подскажите, пожалуйста почему оператор break в строке 44 выдаёт ошибку, и как её исправить.
оператор break
Здравствуйте! Я где-то слышал, что использовать оператор break для выхода из цикла - не хорошо. И.
Ахтунг! Не работает break в Python.
Άηϑρέΰ ҂ Искусственный Интеллект (179567) не нужен, так как и так будет выход из if.. if a==0: b=1 // тут выход elif a==2: b=2 // тут выход // продолжение а break ставится в циклах, так как иначе не выйти из него когда надо.. основы нужно изучать
break прерывает цикл, который в данном коде отсутствует, if это просто проверка условия
Denis BakulinУченик (157) 5 лет назад
а как мне написать эту часть, если я хочу, чтоб когда вводится "1" программа прекращалась?
DONER KEBAB Просветленный (34257) просто уберите break, проверка других условий не будет выполняться
ты не использовал цикл, а break работает только в нем
