首页 > 解决方案 > 使用 while 循环遍历整数范围

问题描述

如何重写第一个代码以使用while循环而不是给定的for循环?两个程序的输出应该是一样的。

num = 500
for j in range(30, 100): 
     if j > 70:
         num = num – 5   
     else:    
         num = num + 2    
     print(num)
print("program output is", num)

我已经尝试过了,但它不能正常工作:

num = 500
while j > 30 and j < 100: 
     if j > 70:
         num = num – 5   
     else:    
         num = num + 2    
     print(num)

标签: pythonloops

解决方案


循环会在每次迭代中for自动更新循环变量 ( )。j

但是,在while循环中,您必须自己为变量分配一个新值,否则循环将永远不会结束。

像一个for循环

for j in range(a, b):
    # do something ...

相当于这个while循环:

j = a
while j < b:
    # do something ...
    j += 1

(注意j += 1与 相同j = j + 1。)

在您的情况下,您需要编写:

num = 500
j = 30
while j < 100:
     if j > 70:
         num = num – 5
     else:
         num = num + 2
     print(num)
     j += 1
print("program output is", num)

推荐阅读