输入10条以上数据时class interval仅输出一行?while循环问题排查
问题分析与修复方案
你的代码存在三个关键问题,导致仅输出第一个区间就停止运行:
1. 循环变量未更新
每次循环后没有让num增加区间长度interval,导致num始终等于初始的min值,循环无法推进到下一个区间。必须在循环末尾添加num += interval;来更新循环变量,让程序生成后续区间。
2. 条件判断使用赋值而非比较
if (num=max)是赋值操作(把max的值赋给num),不是判断相等的逻辑,正确写法应为if (num == max)。不过这个判断完全可以去掉——因为循环条件num <= max已经能控制循环的结束时机。
3. 输出格式不符合预期
你需要的是50-60这类连续区间格式,当前代码的输出是拆分的数值,需要调整输出语句,将两个边界值用-连接。
修复后的代码示例
num = min; while (num <= max) { // 输出符合要求的区间格式 cout << num << "-" << num + interval << endl; // 更新循环变量,推进到下一个区间 num += interval; }
额外说明
如果你的区间逻辑是左闭右闭(比如50-59),可以保持你原来的边界计算逻辑,把输出语句改成:
cout << num << "-" << (num-1) + interval << endl;
内容的提问来源于stack exchange,提问作者Elara Pisces
相关产品推荐
相关产品推荐

