Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在不工作的时候做_Javascript_Do While - Fatal编程技术网

Javascript 在不工作的时候做

Javascript 在不工作的时候做,javascript,do-while,Javascript,Do While,当数组当前值等于0时,我想停止while循环。 我知道这是一个简单的代码,但我找不到错误 函数编号总和(输入阵列){ var numberSum=0, i=0, x; 做{ x=输入阵列[i++]; numberSum+=x; }而(x==0); 返回编号sum; } document.getElementById(“demo”).innerHTML=numbersSum([5,1,2,3,0,1,5,0,2]) 只需将比较更改为负面评估: 函数编号总和(输入阵列){ var numberS

当数组当前值等于
0
时,我想停止while循环。 我知道这是一个简单的代码,但我找不到错误

函数编号总和(输入阵列){
var numberSum=0,
i=0,
x;
做{
x=输入阵列[i++];
numberSum+=x;
}而(x==0);
返回编号sum;
}
document.getElementById(“demo”).innerHTML=numbersSum([5,1,2,3,0,1,5,0,2])

只需将比较更改为负面评估:

函数编号总和(输入阵列){
var numberSum=0,
i=0,
x;
做{
x=输入阵列[i++];
numberSum+=x;

}而(x!==0);//只需将比较更改为负评估:

函数编号总和(输入阵列){
var numberSum=0,
i=0,
x;
做{
x=输入阵列[i++];
numberSum+=x;
}while(x!==0);//将
while(x==0)
更改为
while(x!=0)

只有当当前元素等于
0
时,您的
do while
循环才会循环

函数编号总和(输入阵列){
var numberSum=0,
i=0,
x;
做{
x=输入阵列[i++];
numberSum+=x;
}而(x!=0);
返回编号sum;
}
document.getElementById(“demo”).innerHTML=numbersSum([5,1,2,3,0,1,5,0,2]);

while(x==0)
更改为
while(x!=0)

只有当当前元素等于
0
时,您的
do while
循环才会循环

函数编号总和(输入阵列){
var numberSum=0,
i=0,
x;
做{
x=输入阵列[i++];
numberSum+=x;
}而(x!=0);
返回编号sum;
}
document.getElementById(“demo”).innerHTML=numbersSum([5,1,2,3,0,1,5,0,2]);

仅当当前元素等于0时,当前do while才会运行,如果x始终等于0,则校正的线将断开循环

只有当当前元素等于0时,当前do while才会运行。如果x始终等于0,则已更正的行将中断循环。

您的错误在这里:

while(x!=0)而不是while(x==0)

试试这个:

function numbersSum(inputArray) {

  var numberSum = 0,
  i = 0,
  x = 0;
  do {
    x = inputArray[i++];
    numberSum += x;
  } while (x != 0);
  return numberSum;
}

 document.getElementById("demo").innerHTML = numbersSum([5, 1, 2, 3, 0, 1,  5, 0, 2]);
您的错误在这里:

while(x!=0)而不是while(x==0)

试试这个:

function numbersSum(inputArray) {

  var numberSum = 0,
  i = 0,
  x = 0;
  do {
    x = inputArray[i++];
    numberSum += x;
  } while (x != 0);
  return numberSum;
}

 document.getElementById("demo").innerHTML = numbersSum([5, 1, 2, 3, 0, 1,  5, 0, 2]);
这里:
while(x==0);
是不工作的原因

如您所见,条件声明为“只要数组中的元素为零,就以NumberSum递增”,因此不从数组中的第一个数字5向前移动

([5,1,2,3,0,1,5,0,2]};

将逻辑更改为
while(x!+=0);

最终代码:
函数编号总和(输入阵列){
var numberSum=0,
i=0,
x;
做{
x=输入阵列[i++];
numberSum+=x;
}而(x!==0);
返回编号sum;
}
document.getElementById(“demo”).innerHTML=numbersSum([5,1,2,3,0,1,5,0,2]);

此处:
while(x==0);
是不工作的原因

如您所见,条件声明为“只要数组中的元素为零,就以NumberSum递增”,因此不从数组中的第一个数字5向前移动

([5,1,2,3,0,1,5,0,2]};

将逻辑更改为
while(x!+=0);

最终代码:
函数编号总和(输入阵列){
var numberSum=0,
i=0,
x;
做{
x=输入阵列[i++];
numberSum+=x;
}而(x!==0);
返回编号sum;
}
document.getElementById(“demo”).innerHTML=numbersSum([5,1,2,3,0,1,5,0,2]);

如果希望它在x为0时停止,那么为什么要使用
而(x==0)
?预期的输出是什么?当数组中的值为
==0
时,是否要中断
循环?只需将条件更改为
x!==0
尝试在
[]之外增加
i
另外,尝试使用与函数名不同的变量名,因为它可能会导致意外行为。哦,该死。谢谢“vp_arth”。如果希望它在x为0时停止,那么为什么要使用
while(x==0)
?预期的输出是什么?当数组中的值为
==0
时,是否要中断
循环
?只需将条件更改为
x!==0
尝试在
[]之外递增
i
另外,请尝试使用与函数名不同的变量名,因为这可能会导致意外行为。哦,见鬼。谢谢“vp_arth”。
do while
始终至少运行一次。
do while
始终至少运行一次。请评论您的反对票。这样,您就让我意识到我的错误。请评论您的反对票。让我意识到我的错误。