|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
1111,
num=int(input("输入一个整数:"))
while True:
if num%2==0:
num1=int(num/2)
print(num,"/2","=",num1)
num=num1
elif num%2==1:
num1=num*3+1
print(num, "*3+1=", num1)
num = num1
if num==1:
break
2222,
num=int(input("输入一个整数:"))
while True:
if num%2==0:
num1=int(num/2)
print(num,"/2","=",num1)
num=num1
elif num%2==1:
num1=num*3+1
print(num, "*3+1=", num1)
num = num1
elif num==1:
break
为什么1和2例子中,搞成elif就结果不同?是break跳出的原因吗?
在第一个例子中,判断 num==1 的语句是在 if 和 elif 之外的,所以当 num 等于 1 时,不论前面的条件是否成立,都会执行 break 语句跳出循环。
而在第二个例子中,elif 条件语句中的 num==1 判断语句是前面的 if 的最后一个分支,但是前面的分支已经囊括了所有的情况,所以最后一个分支永远不会得到执行
因此,在第一个例子中,只要 num 等于 1,程序就会 break跳出循环;而在第二个例子中,则永远不会跳出循环
|
|