我使用for循环求从1累加到100的和。使用i为循环变量,要求:如果i=11,则中止当前循环而进入下次循环;如果累加和大于3800时,退出整个循环我用了if(i==11)continue,但好像没用;为什么最后结果是3828,而不是3817,我要的结果是3817<html>
<head>
<title>sf</title>
</head>
<body>
<script language="JavaScript">
var gd=100;
var sum=0;
var i=0;
while(i<=gd)
{
sum+=i;
if(i==11)
{continue;
i++}
}
document.write(sum);</script>
</body>
</html>
哪里出问题
<head>
<title>sf</title>
</head>
<body>
<script language="JavaScript">
var gd=100;
var sum=0;
var i=0;
while(i<=gd)
{
sum+=i;
if(i==11)
{continue;
i++}
}
document.write(sum);</script>
</body>
</html>
哪里出问题
{continue;
i++}这样i是永远不会到11的……
sum+=i;应该放在if语句的后面,要不然,他先加上11了,再判断是不是等于11再continue没有意义的说……
俺在语言参考上找到的例子
while (i < 10)
{
i++;
// 跳过 5
if (i==5)
{
continue;
}
s += i;
}
<html>
<head>
<title>sf</title>
</head>
<body>
<script language="JavaScript">
var gd=100;
var sum=0;
var i=0;
while(i<=gd)
{
sum+=i;
i++
if(i==11)
{
continue;
}
}
document.write(sum);</script>
</body>
</html>
var gd=100;
var sum=0;
var i=0;
while(i<=gd)
{
if (sum > 3800) break;
sum+=i;
if(i==11)
{i++;
continue;
}
}
document.write(sum);
<script>
function skip11(){
var s=0, i=0;
while (i < 100 || s<3800)
{
i++;
// 跳过 11
if (i==11)
{
continue;
}
s += i;
}
return(s);
}document.write(skip11());
</script>
function skip11(){
var s=0, i=0;
while (i<100 && s<3800)
{
i++;
// 跳过 11
if (i==11)
{
continue;
}
s += i;
}
return(s);
}document.write(skip11());
</script>
for(i=1;i<=100;i++)
{
if(i==11) continue;
if(total>3800) break;
total += i;
}
要不然用goto语句跳出来。
<html>
<head>
<title>sf</title>
</head>
<body>
<script language="JavaScript">
var gd=100;
var sum=0;
for(var i=0;i<gd;i++)
{
if(i!=11)
sum+=i; //如果i不为11则累计,
else
continue;//为11则跳到下一个循环
if(sum>3800)
break; //如果和大于3800,跳出整个循环
}
document.write(sum);</script>
</body>
</html>
var gd=100;
var sum=0;
var i=0;
while(i<=gd)
{
sum+=i;
i++;
if(i==11)
{
continue;
}
}
document.write(sum);</script>