1

私のプログラムは 2 から 10 までの偶数の合計を表示するはずですが、シェルで even_while() を渡すと結果が表示されません。問題はどれですか?

def even_while():


    number = 2
    s = 0

    while number < 10:
        if number % 2 == 0:
            old_number = number
            number = number + 1
            s = s + old_number

    print(s)  

ありがとう!

4

3 に答える 3

5

"無限ループ"。 numberは 2 から始まります。これは偶数なので、それに 1 を加えます。それはnumber3 のままです。これで、whileループは「永遠に」回ります。 number % 2 == 0は真になることはなく ( numberis 3!)、number再び変化することはありません。

于 2013-09-21T21:28:59.227 に答える
2

numberでない限りインクリメントしないnumber % 2 == 0ため、whileループは進行しません。

さらに、rangeビルトインを楽しむことができます:

def even_while():
    s = 0

    for number in range(2, 10):
        if number % 2 == 0:
            old_number = number
            s = s + old_number

    print(s)
于 2013-09-21T21:27:08.963 に答える
0
def even_while():

    number = 0
    s = 0

    while number < 11:
        number = number + 1
        if number % 2 == 0:
            old_number = number
            s = s + old_number

    print(s) 

これでいいと思います。

于 2013-09-21T21:31:58.597 に答える