在while循环中使用条件语句

时间:2019-06-25 11:55:16

标签: python loops while-loop conditional-statements

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

这是我的代码:

i = 0

sum = 0

while i < 7:

    if (i % 2) == 1:

        sum += i

        i += 1

我希望总和为9,但是会发生无限循环,从而导致总和为无限。

我似乎无法理解。任何帮助表示赞赏。预先感谢!

3 个答案:

答案 0 :(得分:1)

您只能在i内递增if,因此,如果不表示条件,i将永远保持不变

i = 0

sum = 0

while i < 7:

    if (i % 2) == 1:

        sum += i

    i += 1

print(sum)

输出:

  

9

答案 1 :(得分:0)

当您继续调节i % 2时,但是如果没有通过,则i永远不会改变,它将始终退出if语句来解决它:

i = 0

sum = 0

while i < 7:

    if (i % 2) == 1:

        sum += i

    i += 1

print(sum)

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

答案 2 :(得分:0)

在类似情况下,使用for循环比使用while循环更好。特别是如果您的循环很长。 link

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