有人可以告诉我这里做错了吗?我试图使用输入坐标输出到使用for循环的html表。
for(i=1; i<10; i++);{
i = x;
document.writeln(mytable + i)
}
for(j=1; j<10; j++);{
j = y;
document.writeln(mytable + j)
}
if(kingX == x || kingY == y){
document.writeln('K');
}
else if(queenX == x || queenY == y){
document.writeln('Q');
}
else(x || y <=10);{
document.writeln(' ');
}
mytable = mytable + "</tr></tbody></table>";
答案 0 :(得分:1)
所以我重写了你的代码,以便你可以看到它应该是什么样子。
<script>
var isInCheck = '';
var kingX = prompt('Enter X co-ordinate of King? ','');
var kingY = prompt('Enter Y co-ordinate of King? ','');
var queenX = prompt('Enter X co-ordinate of Queen? ','');
var queenY = prompt('Enter Y co-ordinate of Queen? ','');
document.write('<table>');
for ( var x=0; x<10; x++) {
document.writeln('<tr>');
for (var y=0; y<10; y++) {
// This is inside of a nested for-loop
document.writeln('<td>');
if (kingX == x && kingY == y) {
document.writeln('K');
} else if(queenX == x && queenY == y) {
document.writeln('Q');
} else {
document.writeln(' ');
}
document.writeln('</td>');
}
document.writeln('</tr>');
}
document.write( '</table>' );
</script>
您发布的代码中存在两个主要错误。
第一个,不要这样做,因为分号不会执行大括号之间的代码:
for(j=1; j<10; j++);{
它应该看起来像这样(没有分号):
for(j=1; j<10; j++) {
这可能是您可能遇到的混乱的主要原因。
其次,你想这样做:
if (kingX == x && kingY == y) {
不是这个:
if (kingX == x || kingY == y) {
你写的代码是:如果x坐标等于kingX,或者y坐标等于kingY然后显示K.你想要两个条件都是真的,所以你需要并且想要使用&amp;&amp;。 / p>
此外,for循环也可以嵌套,你可以在另一个循环中创建一个循环,这是创建所需表结构所必需的。
最后,使用document.write输出表是不常见的,但由于你是初学者,所以没关系。通常我们将字符串与变量连接起来然后输出该变量。