首页 > 试题广场 >

下列语句的执行结果是什么? a = 1 for i in r

[问答题]
下列语句的执行结果是什么?
a = 1
for i in range(5):
  if i == 2:
     break
     a += 1
 else:
     a += 1
print a

推荐
格式正常的代码
i是从0到4的循环,
i=0:在else中执行a=a+1=2
i=1:在else中执行a=a+1=3
i=2:在if中执行break,跳出整个循环
最后输出结果:3
编辑于 2018-05-07 16:11:32 回复(4)
201头像 201
print在else下面的话就是2 3,
print在循环外面的话就是3
发表于 2018-04-14 22:45:05 回复(0)
3
编辑于 2018-05-07 16:11:24 回复(0)
因为循环体中遇到break,会直接终止循环体,故当i 遍历取到2的时候,a的值为3
发表于 2020-10-02 21:42:46 回复(0)
3
发表于 2020-01-31 08:30:39 回复(0)
3
发表于 2019-12-21 19:11:40 回复(0)
a = 1
for i in range(5):
    if i == 2:
        break
        a += 1
    else:
        a += 1
print(a)
result is 3
发表于 2019-12-14 11:04:18 回复(0)
3
发表于 2019-09-05 17:35:34 回复(0)
应该是3,到i=2就直接跳出循环了
发表于 2019-08-19 11:02:13 回复(0)
3
发表于 2019-04-02 16:58:05 回复(0)
当循环到1时,,a=3,,,,,循环到2时,循环终止,跳出循环,这时则输出a=3   相当于后续没有执行了!!!
发表于 2019-03-26 23:54:35 回复(0)
这道题的缩进不是很清楚,如果else和if对齐,输出为3,别看错了,这里没有函数,没有局部变量之说,a在此是全局变量;如果else和for对齐(我感觉这道题的目的是想考这种方式),有这么个结构:
for else,这个结构的用法是,当for里面会有异常退出时,else分支不会执行(此处for里有break),所以a没有进行任何操作,输出为1,只有当for正常退出才会执行else分支。

发表于 2019-03-08 17:20:16 回复(0)
3
发表于 2019-03-05 00:10:47 回复(0)
3
发表于 2019-02-28 15:26:39 回复(0)
3
发表于 2019-02-16 12:49:29 回复(0)
else和if同级结果为3,else和for同级结果为1
发表于 2019-02-12 09:46:53 回复(0)
3
发表于 2019-01-30 19:03:42 回复(0)
2
发表于 2018-10-20 23:19:57 回复(0)
3
发表于 2018-09-18 17:35:18 回复(0)
3
发表于 2018-09-16 12:37:46 回复(0)
3
编辑于 2018-09-14 11:58:46 回复(0)