焜仔 发表于 2020-6-1 18:37:38

关于打印乘法表的代码问题

想请问一下大家,打印99乘法表的代码为什么不能先赋值呢,我这样写是正确的
i=1
while i<10:
&nbsp; &nbsp; j=1
&nbsp; &nbsp; while j<10:
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;print(j*i)
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;j=j+1
&nbsp; &nbsp; i=i+1
但是这样写就是错误的
i=1
j=1
while i<10:
&nbsp; &nbsp; while j<10:
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;print(j*i)
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;j=j+1
&nbsp; &nbsp; i=i+1
请各位大佬帮忙答疑解惑

qiuyouzhi 发表于 2020-6-1 18:40:31

用代码格式发,出现乱码了

永恒的蓝色梦想 发表于 2020-6-1 18:40:48

你的代码应该是这样的吧:i=1
j=1
while i<10:
    while j<10:
            print(j*i)
            j=j+1
    i=i+1这样的话,j 在第一次循环之后就会变成 10,以后没有重新赋值,j<10 的条件就永远不成立了。

青出于蓝 发表于 2020-6-1 18:43:38

while i <= 9:
    j = 1
    while j <= i:
      print(str(j) + "*" + str(i) + "=" + str(j * i), end="\t")
      j += 1
    print()
    i += 1

Twilight6 发表于 2020-6-1 18:44:12

第一个代码,每次循环都有初始化 j 的值 所以内部的循环可以同外部每次循环一次
内部也循环至 j = 10 的时候 然后退出道外部循环 j 重新赋值为 1然后才能重新进入内部循环

而你的第二个代码,没有重新初始化 j 的值 ,使你第一次循环后 j = 10 ,退出内部的循环
j 不进行初始化 内部循环条件永远不可能成立,也就是进入不了内部的循环所以你第二个代码不行的

焜仔 发表于 2020-6-1 18:47:07

懂了,感谢大家!!!
页: [1]
查看完整版本: 关于打印乘法表的代码问题