鱼C论坛

 找回密码
 立即注册
查看: 92|回复: 3

[已解决]While循环语句的困惑

[复制链接]
发表于 2024-11-8 22:55:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

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循环语句的理解哪里出了问题,恳请大神们指点一下,谢谢!

最佳答案
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
循环结束
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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
循环结束
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-21 19:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表