yjx20060525 发表于 2025-7-15 23:44:47

求助 很基础的问题关于代码逻辑

i = 0
sum = 0
while i <= 100000:
    if i % 2 == 0:
   sum = sum + i
    i = i + 1 #此处代码如果空一格跟sum对齐,就没有print内容 这是为什么 以及如果有问题不应该是0吗为什么只是空出来
print(sum)

FishC 发表于 2025-7-15 23:46:40

你好!关于你的代码逻辑问题,这里提供一个完整的累加示例(从 0 累加到 100):


i = 0
sum = 0
while i <= 100:# 当i小于等于100时循环
    sum += i    # 累加当前i的值
    i += 1      # i增加1
print(sum)      # 输出结果:5050


代码要点:
1. while i <= 100: 确保循环在 i>100 时停止
2. i += 1 必须写在循环内!否则 i 永远不变会导致死循环
3. 执行顺序:
   sum += i → i += 1(先累加再更新i)

常见错误:
错误1: 缺少终止条件

while i:# 缺少具体条件 → 死循环!


错误2: 忘记更新 i

while i <= 100:
    sum += i   # 没有 i += 1 → i永远=0 → 死循环!


如果还有其他具体问题,可以补充说明代码目标,我会进一步解释~

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

ydwb 发表于 2025-7-16 06:31:44

i = 0
sum = 0
while i <= 100000:
    if i % 2 == 0:
      sum = sum + i
      i = i + 1
print(sum)
当i为0(偶数)时,进入if分支,sum加上0,然后i增加1变为1。
下一次循环,i=1(奇数),不进入if分支,因此i不会增加,导致i一直为1,循环无法继续推进。
我们需要在每次循环中都递增i,不论奇偶。
因此,修正方法是将i = i + 1移到if语句外面,确保每次循环i都增加1。

某一个“天” 发表于 2025-7-16 08:29:13

你这个缩进问题也太大了

xiaoniugogogo 发表于 2025-7-16 09:59:04

while进了死循环,执行不到print语句
页: [1]
查看完整版本: 求助 很基础的问题关于代码逻辑