嵌套while循环输出异常:如何实现预期的循环迭代效果?
问题分析与解决
你的代码核心问题是**j的初始化位置错误,且后续循环未重置j的起始值**:
- 你把
j=0写在了所有循环外面,第一次内层循环跑完后,j会被加到5。 - 之后外层循环每次让
i加10,但此时j已经是5,不满足j < 5的条件,内层循环直接跳过,所以只输出了i=0时的结果。
另外,你期望i=0时j从0开始,后续i值对应的j从1开始,所以还要根据i的初始值调整j的起始点。
修正后的代码
i = 0 while i < 50: # 根据i的值设置j的起始值:i=0时从0开始,其他情况从1开始 j = 0 if i == 0 else 1 while j < 5: print(f'i: {i}') print(f'j: {j}') j += 1 # 打印空行分隔不同i的输出块 print() i += 10
修正说明
- 把
j的初始化移到外层循环内部,确保每次外层循环迭代时,j都会被重新设置起始值。 - 通过条件判断
i == 0来区分j的起始点,完全匹配你期望的输出格式。 - 增加空行打印,让不同
i对应的输出块更清晰,和你给出的示例格式一致。
内容的提问来源于stack exchange,提问作者Spatial Digger
相关产品推荐
相关产品推荐

