我使用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>
哪里出问题

解决方案 »

  1.   

    汗,你这不是个死循环啊?if(i==11)
    {continue;
    i++}这样i是永远不会到11的……
      

  2.   

    如果你用的是for语句的话
    sum+=i;应该放在if语句的后面,要不然,他先加上11了,再判断是不是等于11再continue没有意义的说……
      

  3.   

    顺序问题吧。
    俺在语言参考上找到的例子
       while (i < 10) 
       {
          i++;
          // 跳过 5
          if (i==5)
          {
           continue;
          }
       s += i;
       }
      

  4.   

    死循环
    <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>
      

  5.   

    这样写:
    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);
      

  6.   

    参考:
    <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>
      

  7.   

    <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>
      

  8.   

    total = 0;
    for(i=1;i<=100;i++)
    {
      if(i==11) continue;
      if(total>3800) break;
      total += i;
    }
      

  9.   

    我记得while里面是用break而不是continue,continue是for语句里用的。
    要不然用goto语句跳出来。
      

  10.   

    用For语句吧,你的语句里面有一个死循环,i无法增的。看来是个初学者,好好加油。
    <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>
      

  11.   

    是死循环啊<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>