我在这个C ++程序中遇到了一个错误放置的else错误,它是无与伦比的Tic-Tac-Toe程序的一部分,不是全部代码,只是程序的一部分
我包括了所有必要的花括号,并检查了三次(也许不止于此)
我已经键入了所有必需的大括号[{}],即使在我提到标签“ ERROR”的行中,我也会放错地方,否则会出错
if(k==4)
{ if(e=='x')
{ if(b=='x')
j[k]='8';
else
if(h=='x')
j[k]='2';
else
if(c=='x')
j[k]='7';
else
if(g=='x')
j[k]='3';
else
if(d=='x')
j[k]='6';
else
if(f=='x')
j[k]='4';
else
if(i=='x')
j[k]='3';
}
else
{ if(a=='x'&&b=='x'||i=='x'&&f=='x')
j[k]='3';
else
if(a=='x'&&d=='x'||h=='x'&&i=='x')
j[k]='7';
else
if(d=='x'&&g=='x'||b=='x'&&c=='x')
j[k]='1';
else
if(c=='x'&&f=='x'||g=='x'&&h=='x')
j[k]='9';
else
if(a=='x')
{ if(c=='x')
j[k]='2';
else
if(g=='x')
j[k]='4';
}
else
if(i=='x')
{ if(c=='x')
j[k]='6';
else
if(g=='x')
j[k]='8';
}
else
if(g=='x')
{ if(f=='x')
j[k]='9';
else
if(b=='x')
j[k]='1';
}
else
if(a=='x')
{ if(h=='x')
j[k]='7';
else
if(f=='x')
j[k]='3';
}
else
if(c=='x')
{ if(h=='x')
j[k]='9';
if(d=='x')
j[k]='1';
}
else
if(i=='x')
{ if(b=='x')
j[k]='3';
if(d=='x')
j[k]='7';
}
} ERROR: else
{if(a=='x')
j[k]='3';
else
j[k]='1';
}
}
实际结果是我提到标签“ ERROR”的行。必须正常工作
答案 0 :(得分:1)
如Mark Loeser所写。错误是在其他字符之前放错了'}'。因此,在另一个之后还有另一个。
我强烈建议始终在每个if和else语句之后使用支撑块,并使用缩进。
if (something)
{
do_something();
}
else
{
do_something_else();
}
然后
您的提示如下所示。您将立即看到错误。
if(k==4)
{
if(e=='x')
{
if(b=='x')
j[k]='8';
else
if(h=='x')
j[k]='2';
else
if(c=='x')
j[k]='7';
else
if(g=='x')
j[k]='3';
else
if(d=='x')
j[k]='6';
else
if(f=='x')
j[k]='4';
else
if(i=='x')
j[k]='3';
}
else
{
if(a=='x'&&b=='x'||i=='x'&&f=='x')
j[k]='3';
else
if(a=='x'&&d=='x'||h=='x'&&i=='x')
j[k]='7';
else
if(d=='x'&&g=='x'||b=='x'&&c=='x')
j[k]='1';
else
if(c=='x'&&f=='x'||g=='x'&&h=='x')
j[k]='9';
else
if(a=='x')
{
if(c=='x')
j[k]='2';
else
if(g=='x')
j[k]='4';
}
else
if(i=='x')
{
if(c=='x')
j[k]='6';
else
if(g=='x')
j[k]='8';
}
else
if(g=='x')
{
if(f=='x')
j[k]='9';
else
if(b=='x')
j[k]='1';
}
else
if(a=='x')
{
if(h=='x')
j[k]='7';
else
if(f=='x')
j[k]='3';
}
else
if(c=='x')
{
if(h=='x')
j[k]='9';
if(d=='x')
j[k]='1';
}
else
if(i=='x')
{
if(b=='x')
j[k]='3';
if(d=='x')
j[k]='7';
}
}
else
{
if(a=='x')
j[k]='3';
else
j[k]='1';
}
}
我希望这会有所帮助。