- x = 7
- i = 1
- flag = 0
- while i <= 100:
- if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):
- flag = 1
- break
- else:
- x = 7 * (i+1) # 根据题意,x一定是7的整数倍,所以每次乘以7
- i += 1
- if flag == 1:
- print('阶梯数是:', x)
- else:
- print('在程序限定的范围内找不到答案!')
复制代码
在if后面加个break,程序就会跳出循环
我们来分析一下你这个:
x = 7
i = 1
flag = 0
while i <= 100:
if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):
flag = 1
else:
x = 7 * (i+1) # 根据题意,x一定是7的整数倍,所以每次乘以7
i += 1
if flag == 1:
print('阶梯数是:', x)
else:
print('在程序限定的范围内找不到答案!')
在不满足if条件下,是不是执行else:语句里面的,所以当x不满足if条件的时候,i += 1在else里面或外面是没区别的,但当x满足条件的时候,执行的是if里面的语句哦,if里面的执行了,else里面就不执行对吧,那i就永远等于一个数对吧,x又不会增加对吧,例如这个i<100,所以while i<100永远执行,if里面的语句也直至执行,变成死循环,你加个break,或者在if语句里添加一句:i += 1(这不就是等同于i += 1放在if else语句外面一样么(if里面有i +=1 else里面有 i += 1))
- x = 7
- i = 1
- flag = 0
- while i <= 100:
- if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):
- flag = 1
- i += 1
- else:
- x = 7 * (i+1) # 根据题意,x一定是7的整数倍,所以每次乘以7
- i += 1
- if flag == 1:
- print('阶梯数是:', x)
- else:
- print('在程序限定的范围内找不到答案!')
复制代码