Javascript 关于嵌套while循环矩形的问题
我正在使用Javascript绘制一个矩形。不幸的是,嵌套while的外部循环似乎无法正常工作。当前(xy)在一行上出现五次,并且不会像预期的那样在并发行上重复Javascript 关于嵌套while循环矩形的问题,javascript,while-loop,nested-loops,Javascript,While Loop,Nested Loops,我正在使用Javascript绘制一个矩形。不幸的是,嵌套while的外部循环似乎无法正常工作。当前(xy)在一行上出现五次,并且不会像预期的那样在并发行上重复 function Art() { // row and col are taking input data from the form in index //var row = document.getElementById("row").value; //var col = document.getElem
function Art() {
// row and col are taking input data from the form in index
//var row = document.getElementById("row").value;
//var col = document.getElementById("height").value;
var row=5;
var col=3;
var countrow =1;
var countcol =1;
document.getElementById("magic").innerHTML=("rectangle has "+ row +" rows and "+ col + " columns");
while (col> countcol){
while(countrow<=row){
document.getElementById('count').innerHTML=document.getElementById('count').innerHTML+"(XY)";
countrow++;
}
document.getElementById('count').innerHTML=document.getElementById('count').innerHTML+"<p></p>";
countcol++;
}
}
函数艺术(){
//行和列从索引中的表单获取输入数据
//var row=document.getElementById(“row”).value;
//var col=document.getElementById(“高度”).value;
var行=5;
var-col=3;
var countrow=1;
var countcol=1;
document.getElementById(“magic”).innerHTML=(“矩形有“+行+”行和“+列+”);
while(col>countcol){
while(countrow循环变量countrow
第一次进入row
的值,但是在外部while
循环的下一次迭代中,它不会重新启动。因此,内部while
将不再执行
此外,您的循环似乎按错误的顺序放置:您应该首先迭代行,然后逐行迭代列
通过在每次迭代中交换循环并重置内部循环计数器来修复它:
var countrow = 1;
while(countrow<=row){
countcol = 1;
while (countcol<=col){
document.getElementById('count').innerHTML=document.getElementById('count').innerHTML+"(XY)";
countcol++;
}
document.getElementById('count').innerHTML=document.getElementById('count').innerHTML+"<p></p>";
countrow++;
}
不过,我应该补充一点,反复向innerHTML
添加内容并不是最好的做法
下面是它的实现方法,只需对innerHTML
进行一次赋值:
document.getElementById('count').innerHTML=
Array.from({length: row}, () => "(XY)".repeat(col)).join("<p></p>");
document.getElementById('count').innerHTML=
数组.from({length:row},()=>“(XY)”.repeat(col)).join(“”);
您应该添加
countrow =1;
内外环
改变
col> countcol
到
Art();
函数Art(){
//行和列从索引中的表单获取输入数据
//var row=document.getElementById(“row”).value;
//var col=document.getElementById(“高度”).value;
var行=5;
var-col=3;
var countrow=1;
var countcol=1;
document.getElementById(“magic”).innerHTML=(“矩形有“+行+”行和“+列+”);
而(col>=countcol){///Change>为>=
countrow=1;///您应该只添加以下内容
虽然(countrow我同意这是一种奇怪的方法,但是,我的作业特别要求这样做。我可以做什么来确保外部while在连续迭代中执行?通过将内部循环切换到外部,我的输出的格式也发生了变化。重置countrow计数器是解决方案。谢谢您我需要你的帮助,现在一切正常。
col> countcol
col>= countcol