C++中如何使用for循环替代大量重复的if判断语句
C++ 优化堆叠if判断的方案
你的原有代码本质是逐行遍历3*3的二维数组,为每个值为'X'的位置按顺序赋值为'1'到'9'的字符,直接用双层for循环加计数器就可以完全替换所有重复的if判断,逻辑完全等价:
int num = 1; // 遍历二维数组的行 for(int i = 0; i < 3; ++i) { // 遍历当前行的列 for(int j = 0; j < 3; ++j) { if(masiv[i][j] == 'X') { // 数字转对应字符,直接用字符ASCII偏移计算即可 masiv[i][j] = '0' + num; } num++; } }
方案优势
- 彻底消除重复堆叠的if代码,代码行数大幅压缩
- 可扩展性更强,如果后续二维数组的行列数发生变化,只需要调整循环的边界条件,不需要新增/删除if判断
- 逻辑表达更直观,直接体现逐行给数组位赋值的业务规则
内容的提问来源于stack exchange,提问作者Simeon Momkov
相关产品推荐
相关产品推荐

