【问题标题】:Using conditional statements in while loop在while循环中使用条件语句
【发布时间】:2019-11-07 06:13:22
【问题描述】:

我的印象是,在我的 while 循环中添加以下 if 语句会使 python 只选择 i 的小于 7 的奇数值并将它们相加。然而,事实并非如此。

这是我的代码:

i = 0

sum = 0

while i < 7:

    if (i % 2) == 1:

        sum += i

        i += 1

我希望 sum 为 9,但会发生无限循环,导致 sum 为无限。

我似乎无法理解如何。任何帮助表示赞赏。提前致谢!

【问题讨论】:

  • 您只在if 内增加i,因此如果条件不明确,i 将永远保持不变

标签: python loops while-loop conditional-statements


【解决方案1】:

您只在if 内增加i,因此如果条件不明确,i 将永远保持不变

i = 0

sum = 0

while i < 7:

    if (i % 2) == 1:

        sum += i

    i += 1

print(sum)

输出:

9

【讨论】:

    【解决方案2】:

    当你不断调节i % 2,但如果它没有通过,i永远不会改变,它会一直退出if语句,来解决它:

    i = 0
    
    sum = 0
    
    while i < 7:
    
        if (i % 2) == 1:
    
            sum += i
    
        i += 1
    
    print(sum)
    

    您必须将 i += 1 行缩进 4 个空格。

    【讨论】:

      【解决方案3】:

      对于类似的情况,使用 for 循环比使用 while 循环更好。特别是如果你有很长的循环。 link

      sum = 0
      for i in range(7):
          if (i % 2) == 1:
              sum += i
      

      【讨论】:

        猜你喜欢
        • 2011-10-23
        • 1970-01-01
        • 2017-08-19
        • 2018-05-27
        • 2017-05-02
        • 2015-07-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多