首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跳出while循环

跳出while循环
EN

Stack Overflow用户
提问于 2020-07-01 03:27:45
回答 2查看 56关注 0票数 0

我是python和编程的新手,很难摆脱调用几个函数的while循环。我尝试了各种不同的选择,但它们都以相同的方式结束,它们不会结束,只是继续运行。我之所以出现在这里,只是因为我真的研究并尝试了很长时间来解决这个问题。下面是一些代码,您可以看到其中可能存在与函数的混淆。我不会张贴完整的程序,只是最后一部分。感谢你在我学习的过程中给予的帮助。这也是我第一次发帖子,我在过去的一年里一直在使用stackoverflow。

代码语言:javascript
复制
def main():
        choice = input('''Hello,
Would you like to do basic math or return an average?
Please select 1 for basic math and 2 for average and 3 to quit:

''')
        if choice == '1':
            print(performCalculation())

        elif choice == '2':
            print(calculateAverage())

        elif choice == '3':
            print(main())

j = 0
k = 0
while j < 3:
    print(main())
    while k == 3:
        break
print('All Done!')
EN

回答 2

Stack Overflow用户

发布于 2020-07-01 03:29:28

简单的改变

代码语言:javascript
复制
j = 0
k = 0
while j < 3:
    print(main())
    while k == 3:
        break
print('All Done!')

代码语言:javascript
复制
j = 0

while j < 3:
    print(main())
    j += 1
    
print('All Done!')

while循环不会中断的原因是因为您有while j < 3:,但是从不更改j的值,所以如果它一开始就很小,那么它将永远变小。

此外,k永远不会等于3,即使它等于,该while循环中的break语句也只会使while循环终止,而不是主循环。

票数 0
EN

Stack Overflow用户

发布于 2020-07-01 03:33:12

这里有几个基本的错误。我会按照你的程序执行的顺序去做。

您没有递增循环变量。

您已经使用jk开始了循环变量(为什么不使用ij?)设置为零,并根据这些变量的值进行循环。因为它们永远不会递增,所以您的循环永远不会遇到退出条件。

您可以在相应循环的末尾使用j += 1k += 1递增变量。

你的循环是"unpythonic“的

这些通常会像我下面的示例一样编写。您不需要单独声明i,或者在这里递增它。Python会为您处理这些问题。

代码语言:javascript
复制
for i in range(0, 3):
    ...

您正在打印不返回任何内容的函数。

您的main函数没有返回值,因此调用print(main())是毫无意义的。您可以将其替换为简单的main(),除非您将main()更改为具有某种return "foo"语句。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62664849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档