有人能告诉我我在这里做错了什么吗?我试图使用输入坐标输出到使用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>";发布于 2015-12-29 03:29:42
所以我重写了你的代码,这样你就可以看到它应该是什么样子。
<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。您希望这两个条件都为真,因此您需要并希望使用&&。
此外,for-循环也可以嵌套,您可以在另一个循环中有一个循环,这是创建所需表结构所必需的。
最后,使用document.write输出表并不常见,但既然您是初学者,就可以了。通常,我们会将一个字符串与一个变量连接起来,然后输出该变量。
https://stackoverflow.com/questions/34495613
复制相似问题