LEEFEI571 发表于 2024-11-8 22:55:44

While循环语句的困惑

各位大神,我写了以下的循环语句代码:

i = 0

while i <= 10 :
    if i % 2 == 0:
      i += i
    i += 1
print(i)

最终打印出来i的值是13.

但我不明白为何最终的值是13.
因为第一次循环时(i值为0),满足i % 2 == 0的判断语句条件, i += i的结果是0,然后向下执行i += 1语句,此时i值为1.
第二次循环时(i值为1),不满足i % 2 == 0的判断语句条件,故不会执行i += I,而是直接向下去执行i += 1语句,此时i值为2.

第三次循环时(i值为2),满足i % 2 == 0的判断语句条件, i += i的结果是2,然后向下执行i += 1语句,此时i值为3.
由此类推,满足i % 2 == 0判断语句条件i的值分别为0,2,4,6,8,10, 因此i += i最终赋值后的结果应该是30啊.

不知道我对上述while循环语句的理解哪里出了问题,恳请大神们指点一下,谢谢!

FishC 发表于 2024-11-8 23:14:10

貌似您没有完整地粘贴代码,不过没关系,我可以帮您理解和完善一个常见的`while`循环结构。

一个`while`循环通常用于在某个条件为真时重复执行一段代码。基本结构如下:

i = 0# 初始化变量

while i < 5:# 条件:只要 i 小于 5,就继续循环
    print("当前 i 的值是:", i)
    i += 1# 更新 i 的值,确保循环最终能够结束

在这个例子中,循环会打印出`i`从0到4的值。当`i`等于5时,条件`i < 5`不再成立,循环结束。如果忘记更新`i`(即没有`i += 1`),就会导致死循环,程序将无限运行下去。

如果您遇到特定问题或错误信息,请提供更多信息,我会更具体地帮您解决!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

jackz007 发表于 2024-11-8 23:20:34

本帖最后由 jackz007 于 2024-11-8 23:22 编辑

while i <= 10 :
    if i % 2 == 0:
      i += i
    i += 1
print(i)

第1次循环:i = 0 -> i = 0 + 0 + 1 = 1
第2次循环:i = 1 -> i = 1 + 1 = 2
第3次循环:i = 2 -> i = 2 + 2 + 1 = 5
第4次循环:i = 5 -> i = 5 + 1 = 6
第5次循环:i = 6 -> i = 6 + 6 + 1 = 13
循环结束

小甲鱼的二师兄 发表于 2024-11-8 23:22:45

第三次循环时(i值为2),满足i % 2 == 0的判断语句条件, i += i的结果是2,然后向下执行i += 1语句,此时i值为3.
这里错了,i的值为 2 时,i += i,执行后的结果是 i 的值为 4,然后向下执行 i += 1,此时 i 的值为 5
页: [1]
查看完整版本: While循环语句的困惑