不对,var army="";的话,后面的值就传递不了,显示也为空了.

解决方案 »

  1.   

    <script type="text/javascript" language="javascript">
    <!--
    function test()
    {
      var year=window.prompt("ÇëÊäÈëÄúÒѶÁÁ˼¸ÄêÊ飿",9);
      var army;
      var msg;
      switch(year)
      {
        case 0:
          army="Äú»¹Ã»ÓÐÉÏѧÂð£¿";
          break;
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
        case 6:
          army="¿´À´Ä㻹Á˶ÁСѧŶ£¡";
      break;
        case 7:
        case 8:
        case 9:
          army="ÄãÒÑÍê³ÉÁ˾ÅÄêÒåÎñ½ÌÓýÂð£¿";
      break;
        default:
          if (year>16)
            army="¿´À´ÄãµÄ֪ʶˮƽÒѾ­ºÜ¸ßÁË¡£";
      }
      msg += "Äã¶ÁÁË" + year + "ÄêÊé,\n";
      msg += army + "\n";
      alert(msg);
      window.close()

    test();
    -->
    </script> 
      

  2.   

    <script type="text/javascript" language="javascript">
    <!--
    var msg="";
    function test()
    {
      var year=window.prompt("请输入您已读了几年书?",9);
      var army;
      switch(year)
      {
        case 0:
          army="您还没有上学吗?";
          break;
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
        case 6:
          army="看来你还了读小学哦!";
      break;
        case 7:
        case 8:
        case 9:
          army="你已完成了九年义务教育吗?";
      break;
        default:
          if (year>16)
            army="看来你的知识水平已经很高了。";
      }
      msg += "你读了" + year + "年书,\n";
      msg += army + "\n";
      alert(msg);
    }  
    -->
    </script>msg也定义过的
      

  3.   

    <script type="text/javascript" language="javascript">var msg="";function test()
    {
      var year=window.prompt("ÇëÊäÈëÄúÒѶÁÁ˼¸ÄêÊ飿",9);
     var army;
      switch(year)
      {
        case 0:
          army="Äú»¹Ã»ÓÐÉÏѧÂð£¿";
          break;
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
        case 6:
          army="¿´À´Ä㻹Á˶ÁСѧŶ£¡";
      break;
        case 7:
        case 8:
        case '9':
          army="bb";
      break;
        default:
          if (year>16)
            army="¿´À´ÄãµÄ֪ʶˮƽÒѾ­ºÜ¸ßÁË¡£";
      }
      alert(army);
      msg += "Äã¶ÁÁË" + year + "ÄêÊé,\n";  msg += army ;
      alert(msg);
    } test()
    </script> 
    变成字符串比如‘9’
      

  4.   

    你只是加了这句  alert(army);但弹出来的信息还是underfined,显示不了相应的字符串
      

  5.   

    一:msg未定义就进行+=操作所以报错
    二:prompt得出的是字符串,用在switch时不会强制转换,要自己转换。
    <script type="text/javascript">
    new function test(){ 
      var year = window.prompt("请输入您已读了几年书?",9); 
      var army, msg=""; 
      switch(Number(year)){ 
        case 0:
    army="您还没有上学吗?";
    break; 
        case 1: 
        case 2: 
        case 3: 
        case 4: 
        case 5: 
        case 6:
    army="看来你还了读小学哦!";
    break; 
        case 7: 
        case 8: 
        case 9:
    army="你已完成了九年义务教育吗?";
    break; 
        default:
    army = year>16 ? "看来你的知识水平已经很高了。" : "请输入数字";
      } 
      msg += "你读了" + year + "年书,\n";
      msg += army + "\n";
      alert(msg); 
      window.close();
    }  
    </script>
      

  6.   

    楼上的老兄,我的问题是输入的年份是可以显示的,但army的为字符串的值显示不了?
      

  7.   

    楼上的已经跟你说得很清楚了 为什么 army显示不了 因为你在switch语句的时候没有对你输入的值进行类型转换 也就是说输入的不是数值类型 是字符串类型你的所有条件都比较都不会成功所以 即使你army已经定义了的 但在javascript中如果一个变量你定义了 但没有赋初始值 那么他的值就为undefined 所以 ...
      

  8.   

    搞得太复杂了.楼主你代码改成这样不行吗,为什么一定要用switch呢?<script language="javascript"> 
    <!-- 
    function test(){
    var army=""; 
    var msg="";
    var year=prompt("请输入您已读了几年书?",9); 
    if(year==0)
             army="您还没有上学吗?"; 
    if(year>=1&&year<=6)
            army="看来你还在读小学哦!"; 
    if(year>=7&&year<=9)
            army="你已完成了九年义务教育吗?";
    if(year>16)
            army="看来你的知识水平已经很高了。"; 
    msg="你读了"+year+"年书,\n"+army; 
    alert(msg); 
    }  
    --> 
    </script> 
    <a href="javascript:test()">test</a>
      

  9.   


    你有没试过我10楼的代码,没试过又说不行,我在你的switch中作了类型转换,Number()或parseInt()转换成数字,又或者像xiaolei1982说的把所有的case x改成case "x",JS的switch没有自动强制转换类型,12楼的蜗牛也是牛也说得很清楚。
      

  10.   

      msg += "你读了" + year + "年书,\n";
      msg += army + "\n"; 改成
      msg = "你读了" + year + "年书,\n";
      msg += army + "\n";