无法识别C代码问题:使用while循环打印1到21时出现无限循环
问题原因与修复方案
无限循环成因
你提供的代码出现无限循环的核心原因是while循环体未更新循环控制变量i:i初始值为0,运行过程中值始终不变,永远满足i < 20的判断条件,循环永远不会主动退出。
同时代码不匹配你的功能需求:你需要打印1到21的数值,现有循环条件最多只能打印到20,输出范围不符合预期。
修复后代码
#include<stdio.h> int main(){ int i = 0; while(i < 21) { printf(":%d", i + 1); i++; } return 0; }
修改说明
- 在while循环体内新增
i++;语句,每次循环结束后将i的值加1,确保循环控制变量逐步递增,最终不满足循环条件时自动退出 - 将循环条件从
i < 20调整为i < 21,循环共执行21次,依次输出1到21的数值 - 给while循环添加大括号包裹循环体,避免后续新增代码时出现逻辑错误(C语言中如果循环/判断语句未加大括号,只会将紧随其后的第一条语句识别为循环/判断执行体)
内容的提问来源于stack exchange,提问作者user16790613
相关产品推荐
相关产品推荐

