我目前正在尝试使用变量“breakOK”进行非常简单的检查,以便打破for循环。如果满足我的拼图矩阵中的当前值设置为46的条件,则调用函数并将breakOK设置为1,以便我们可以摆脱循环。但是,我在以下代码的if语句中使用breakOK时出现以下错误:
sudoku.cc:482:13: error: 'breakOK' was not declared in this scope
sudoku.cc:485:11: error: 'breakOK' was not declared in this scope
这真的很奇怪,因为我以相同的方式声明Guess,并且在我的代码中稍后使用时我没有得到范围错误!此外,当我在循环中将breakOK设置为1时,编译器不会抱怨。任何帮助都会非常感激,我已经坚持了太久了!
int Guess = 0; // will be set to a value if a guess is ok
int breakOk = 0; // will be set to 1 if breaking out of loops is necessary
for (int row = 0; row < 9; row++)
{
for (int col = 0; col < 9; col++)
{
if (puzzle.matrix[row][col].currentValue == 46)
{
Guess = guessValues(row, col, puzzle, tried, allowed);
breakOk = 1;
}
if (Guess != 0)
{
tried[row][col].tries.push_back(Guess);
//puzzle.decide(row, col, Guess);
puzzle.matrix[row][col].currentValue = Guess;
}
if (breakOK == 1) // line 482
break;
}
if (breakOK == 1) // line 485
break;
}
答案 0 :(得分:4)
您声明breakOk
,但请检查breakOK
。注意OK中的大写字母K。
答案 1 :(得分:2)
这是因为你的变量是breakOk而你正在引用breakOK
答案 2 :(得分:2)
breakOK
与breakOk
不同。在k
上查看您的案例。