为了账号安全,请及时绑定邮箱和手机立即绑定

为什么while双重循环是这样的结果?

x=1
y=1
while True:
    while y<9:
        x=x+1
        y=y+1
        print x*10+y

http://img1.sycdn.imooc.com//5a09519a0001ab3904550326.jpg

上面是我的代码和结果,但是和它不应该是循环输出64个数出来吗?

正在回答

3 回答

这是你的程序执行流程:

x==2,y==2,x*10+y==22
x==3,y==3,x*10+y==33
...

x==9,y==9(y之前为8,符合内层循环条件y<9,进入内存循环执行y=y+1,y等于9),x*10+y==99
由于y==9,不满足内层循环条件y<9,所以跳出内层循环。由于内层循环后面已经没有代码了,所以程序然后判断是否符合外层循环条件,由于符合外层循环条件,所以继续执行下一条语句,即判断是否符合内层循环条件,由于不符合内层循环条件(y==9,不满足y<9),所以不能执行内层循环的打印语句。


可以改为:

x=1
y=1
while x<9:
    x=x+1
    while y<9:
        y=y+1
        print x*10+y
    y=0


0 回复 有任何疑惑可以回复我~
#1

木偶匹诺曹 提问者

非常感谢!我逻辑太乱了
2017-11-14 回复 有任何疑惑可以回复我~

x=1

y=1

#这样才是8*8次循环,共输出64个数,之前只有里面while做8次循环

while x<9:

    x = x + 1  

    while y<9:

        y=y+1

        print x*10+y


0 回复 有任何疑惑可以回复我~

不是写错了,就是写错了

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758623    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

为什么while双重循环是这样的结果?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信