我试图跳出一个for循环,在一个嵌套的if语句内。所以基本上我在做MasterMind游戏,并试图知道多少用户实际上是正确的(丢弃位置)。 。所以基本上我想出了将AI的二进制数字存储在一个数组中,然后将每个用户二进制数字与它进行比较。只要用户的二进制数字等于来自AI的一个二进制数字,那么它应该跳出for环...我想这样理解,我做的:分手for循环C++
void MasterMind::evaluateCorrection()
{
// AI : 1 1 1 0
//USER: 1 0 1 1
//Store AI In Array
int AI[3];
int count = 0;
std::copy(binaries.begin(), binaries.end(), AI);
for(std::vector<char>::iterator itAI= numbers.begin() ; itAI != numbers.end(); itAI++)
{
for(int i=0; i<=3;i++)
{
char numberAt = *itAI;
int intNumberAt = numberAt - '0';
if(intNumberAt = AI[i])
{
cout << intNumberAt << " VS " << AI[i] << endl;
actuallyCorrect++;
break;
}
}
}
cout << "\n ACTUALLY CORRECT " << actuallyCorrect << endl;
}
所以,当我得到这个代码在bash:
BINARY :
1111
PLEASE ENTER A 4 DIGIT BINARY! OR PROGRAM WILL EXIT
1123
YOU HAVE 2 POSITIONS CORRECT
1 VS 1
1 VS 1
1 VS 1
1 VS 1
ACTUALLY CORRECT 4
这显然是不正确的..我进入1123,它只是说4实际上是正确的......实际上只有2,其实是正确的1和1.请帮助!
'AI [3]'是外的范围,因此必须不能访问'AI [I]''时I = 3'。 – MikeCAT
'intNumberAt = AI [i]'是一个赋值,而不是比较。你确定这是你想要做的吗? – MikeCAT
哇@MikeCAT WOWW ...我完成了 – JOHHNYDEP