关于 while else 循环的结果


i = 0
while i * i <10:
    i +=1
    print(str(i)+" * "+str(i)+"=",i * i)
else:
    print("While Over!")

1 * 1= 1
2 * 2= 4
3 * 3= 9
4 * 4= 16
While Over!
结果中为什么有4 * 4 =16,不是 i 最多到 3 就转else了吗?

你这样看,当i为3时,3x3小于10,然后执行下面的语句,i加了个1变成了4,然后再输出44,之后再判定44大于10,不成立就跳出来了

当i=3时,33<10成立,程序进入while循环。
此时i += 1,i变成4。所以输出了4
4 = 16.