【发布时间】:2018-04-19 01:32:37
【问题描述】:
下面我附上代码,带有逻辑语句。通过查看这段代码,我可以看到它非常重复。
我的任务:给我 9x9 网格,里面有 9 个盒子,我试图让索引开始从 (startRow/Col) 到 (startRow/Col+2) 的循环。
vector<int> findBox(int row, int col){
int startRow;
int startCol;
if(row <= 2){
startRow = 0;
} else if(row > 2 && row <= 5){
startRow = 3;
} else if(row > 5 && row <= 8){
startRow = 6;
}
if(col <= 2){
startCol = 0;
} else if (col > 2 && col <= 5){
startCol = 3;
} else if(col > 5 && col <= 8){
startCol = 6;
}
vector<int> v;
v.push_back(startRow);
v.push_back(startCol);
return v;
}
我正在寻找可以更好地解释我的人。还是我应该尝试重构代码并使用 switch?
谢谢。
杰克
【问题讨论】:
-
我不确定我是否理解 - 您是否得到了 9x9 数组中一系列 9 个连续 cel 需要开始的行和列?您能否重申您要解决的问题,以及为什么要使用向量来返回这两个值?
标签: c++ c++11 if-statement conditional