如何优化为数组元素赋值的循环?(赋值1-12对应月份)
解决数组循环赋值的问题
嘿,刚学数组就碰到循环赋值的小坑啦~我看你给出的代码片段里有两个明显的问题,咱们一步步来修正:
首先你的循环部分少了关键的循环变量更新,而且还没写赋值逻辑,先看看你写的代码片段:
#include "stdafx.h" #include <iostream> using namespace std; int main() { int array[12]; for (int i = 0; i < 12;) { cout << "Month numb..."
问题分析
- 无限循环风险:for循环的第三个表达式是空的,
i永远是0,会一直满足i < 12的条件,程序会卡在循环里出不来 - 缺少赋值逻辑:你还没把1-12的数字赋值给数组元素呢
修正后的完整代码
#include "stdafx.h" #include <iostream> using namespace std; int main() { int array[12]; // 循环遍历数组的12个索引(0到11) for (int i = 0; i < 12; i++) { // 数组索引从0开始,所以用i+1得到1-12的月份数 array[i] = i + 1; // 打印验证每个元素的值 cout << "Month number: " << array[i] << endl; } return 0; }
关键要点
- 一定要给for循环加上循环变量的更新(这里是
i++),每次循环后让i递增,这样才能遍历完所有数组元素后退出循环 - C++数组的索引是从0开始的,所以
array[0]对应第一个元素,赋值i+1刚好能得到1到12的连续数字,完美对应一年的月份 - 如果不需要打印,只保留赋值语句就可以啦
内容的提问来源于stack exchange,提问作者Anghi22
相关产品推荐
相关产品推荐

