循环break不起作用

吃什么选择困难户
用代码块功能插入代码,请勿粘贴截图
我的解答思路和尝试过的方法

import random
foods = ('青菜','猪肉','牛肉','鱼肉','狗肉','羊肉','猫肉','鹿肉','鸡肉','鸭肉','鹅肉','鸡蛋')
print('今天的菜品有:')
for food in foods:
    print(food,end=' ')
choice=input('您想自主选菜还是随机酸菜,自主请输入:1,随机请输入2:')
while True:
    if choice=='1':
        a=input('请输入你想吃的菜:')
        while a in foods:
            print('欢迎选购'+a)
            b=input('结束选择请按n,按其他任意键继续选菜:')
            if b=='n':
                break
            else:
                continue
        else:
            print('您选择的菜品不存在。')
    elif choice=='2':
        num=int(input('请输入随机选择的菜品数量:'))
        a=random.sample(foods,2)
        print('您随机选择的菜品是:',a)
        break
    else:
        print('输入有误,请重新选择。')
        break
 

choice=='1'的循环感觉有些毛病,想让b=='n'的时候结束运行不成功。

import random

foods = ('青菜', '猪肉', '牛肉', '鱼肉', '狗肉', '羊肉', '猫肉', '鹿肉', '鸡肉', '鸭肉', '鹅肉', '鸡蛋')
print('今天的菜品有:')
for food in foods:
    print(food, end=' ')
choice = input('您想自主选菜还是随机酸菜,自主请输入:1,随机请输入2:')

if choice == '1':
    a = input('请输入你想吃的菜:')
    while a in foods:
        print('欢迎选购' + a)
        b = str(input('结束选择请按n,按其他任意键继续选菜:'))
        if b == 'n':
            break
        else:
            continue
    else:
        print('您选择的菜品不存在。')
elif choice == '2':
    num = int(input('请输入随机选择的菜品数量:'))
    a = random.sample(foods, 2)
    print('您随机选择的菜品是:', a)

else:
    print('输入有误,请重新选择。')