for 循环使用 break 和 continue
for loop using break and continue
我正在写一个for循环,需要向数组'bag,'推送不超过三个元素,并使用'break'在'bag'满时跳出循环与上述三个要素。到目前为止,我的代码通过了四项测试中的三项。我遇到的问题是,对于第四个测试,应该是代码 'breaks' 和循环停止 运行 的地方,相反,第四个元素被推送到我的 'bag'大批。如果 'bag' 未满,我需要遍历 'dolls' 直到最后一个元素。
我完全是个初学者,我尝试过一些不同的方法,但我无法弄清楚自己做错了什么。我的代码如下。
function grabDoll(dolls){
var bag=[];
//coding here
for (let i = 0; i < dolls.length; i++) {
if (dolls[i] == 'Hello Kitty' || dolls[i] == 'Barbie doll') {
bag.push(dolls[i])
} else if (dolls[i] == '') {
continue;
} else if (bag.length - 1 === 2) {
break;
} else continue;
}
return bag;
}
您需要将代码更改为这个
function grabDoll(dolls){
var bag=[];
//coding here
for (let i = 0; i < dolls.length; i++) {
if(bag.length === 3) {
break;
} else if (dolls[i] == 'Hello Kitty' || dolls[i] == 'Barbie doll') {
bag.push(dolls[i])
}
}
return bag;
}
您的代码将仅在 if
或 else if
之前的结果为假时检查 else if
。也就是说,如果 if (dolls[i] == 'Hello Kitty' || dolls[i] == 'Barbie doll')
解析为真,您的代码将不会检查与 if
相关的 else if
。
此外,您不需要命令 continue
来继续循环。当循环结束时,它会再次检查循环条件,如果为真,则再次循环运行,否则,循环停止。所以你不需要这部分
} else if (dolls[i] == '') {
continue;
也不是这个
else continue;
您可以使用下面的JS代码。我刚刚在 if else 语句中添加了 bag 数组的条件 must be contain only 3 elements at start.
function grabDoll(dolls)
{
var bag=[];
for (let i = 0; i < dolls.length; i++)
{
if(bag.length == 3)
{
break;
}
else if (dolls[i] == 'Hello Kitty' || dolls[i] == 'Barbie doll')
{
bag.push(dolls[i]);
}
else continue;
}
return bag;
}
感谢@T.J Crowder 的评论。知道了
function grabDoll(dolls){
var bag=[];
//coding here
for (let i = 0; i < dolls.length; i++) {
if (bag.length === 3) {
break;
} else if (dolls[i] == 'Hello Kitty' || dolls[i] == 'Barbie doll') {
bag.push(dolls[i])
} else if (dolls[i] == '') {
continue;
}
}
return bag;
}
我正在写一个for循环,需要向数组'bag,'推送不超过三个元素,并使用'break'在'bag'满时跳出循环与上述三个要素。到目前为止,我的代码通过了四项测试中的三项。我遇到的问题是,对于第四个测试,应该是代码 'breaks' 和循环停止 运行 的地方,相反,第四个元素被推送到我的 'bag'大批。如果 'bag' 未满,我需要遍历 'dolls' 直到最后一个元素。
我完全是个初学者,我尝试过一些不同的方法,但我无法弄清楚自己做错了什么。我的代码如下。
function grabDoll(dolls){
var bag=[];
//coding here
for (let i = 0; i < dolls.length; i++) {
if (dolls[i] == 'Hello Kitty' || dolls[i] == 'Barbie doll') {
bag.push(dolls[i])
} else if (dolls[i] == '') {
continue;
} else if (bag.length - 1 === 2) {
break;
} else continue;
}
return bag;
}
您需要将代码更改为这个
function grabDoll(dolls){
var bag=[];
//coding here
for (let i = 0; i < dolls.length; i++) {
if(bag.length === 3) {
break;
} else if (dolls[i] == 'Hello Kitty' || dolls[i] == 'Barbie doll') {
bag.push(dolls[i])
}
}
return bag;
}
您的代码将仅在 if
或 else if
之前的结果为假时检查 else if
。也就是说,如果 if (dolls[i] == 'Hello Kitty' || dolls[i] == 'Barbie doll')
解析为真,您的代码将不会检查与 if
相关的 else if
。
此外,您不需要命令 continue
来继续循环。当循环结束时,它会再次检查循环条件,如果为真,则再次循环运行,否则,循环停止。所以你不需要这部分
} else if (dolls[i] == '') {
continue;
也不是这个
else continue;
您可以使用下面的JS代码。我刚刚在 if else 语句中添加了 bag 数组的条件 must be contain only 3 elements at start.
function grabDoll(dolls)
{
var bag=[];
for (let i = 0; i < dolls.length; i++)
{
if(bag.length == 3)
{
break;
}
else if (dolls[i] == 'Hello Kitty' || dolls[i] == 'Barbie doll')
{
bag.push(dolls[i]);
}
else continue;
}
return bag;
}
感谢@T.J Crowder 的评论。知道了
function grabDoll(dolls){
var bag=[];
//coding here
for (let i = 0; i < dolls.length; i++) {
if (bag.length === 3) {
break;
} else if (dolls[i] == 'Hello Kitty' || dolls[i] == 'Barbie doll') {
bag.push(dolls[i])
} else if (dolls[i] == '') {
continue;
}
}
return bag;
}