1  <script language="javascript">
          2   function test2()
          3    { var x=1
          4      var y=0
          5       switch(y)
          6          {case 0:
          7              switch(x++)
          8                 {case 1:y+=x
          9                 case 2:y=x*x-1;break;}
          10     case 1:x++;y--;break;}
          11     document.write(x)
          12     document.write(y)
                            }
          13     </script>
    我认为输出该是2 3,但我把他输入dw运行出来的结果是3 2,我认为第10行的语句是没法执行的啊,因为中间的switch()算出了2 3的结果,而10行是case 1,所以我认为不可能执行,结果该2 3也,就这不明白的地方。小弟才学请多多指教下

解决方案 »

  1.   

    是3 2 啊,
    你在每行后面都弄个alert或write看看就行了.
      

  2.   

    第10句无论是case几都会执行。
      

  3.   

    这个题的陷阱是第9句,让你误以为case2才执行,其实9,10永远执行
      

  4.   

    借你的贴发个贴..呵...
    JS与ASP页面的传值问题
    a.htm调用
    <script language="JavaScript" src="b.asp?typeid=1&ArtNUM=2"></script>b.asp
    <%
    dim typeid,article
    typeid=request.querystring("typeid")
    response.write"document.write (" & Chr(34) & ""&typeid&"" & Chr(34) & ");"
    %>
    这样子浏览a.htm还可以显示
    如果b.asp页里用到:
    set rs=server.createObject("Adodb.recordset")
    rs.open "select * form SK_Article where TypeID="&typeid,conn,1,1
    do while not rs.eof
    response.write "document.write (" & Chr(34) & ""&title&"" & Chr(34) & ");"
    rs.movenext
    loop
    rs.close
    set rs=nothing
    这些就不再显示了.
    b.asp能从a.htm获取请求变量及值.为什么用到数据库相关的操作就出问题...
      

  5.   

    我也有个问题也 就是for循环的问题 哪个帮我看下哦
      代码如下
            <script language="javascript">
       function test4()
       { var n=new Array(3);
       var i;
       var j;
       for(i=0;i<2;i++)n[i]=0;   //这行是不是 初始化 n[0]=0 n[1]=0哦???
       for(i=0;i<2;i++)
       for(j=0;j<2;++j)
       n[j]=n[i]+2;                //这三行搞不懂了 输出结果是66,这种for循环的流程是怎样的哦,哪位高手详细解释下嘛,感谢啊
       document.write(n[0]);
       document.write(n[1]);
       }
       
    </script>