为了账号安全,请及时绑定邮箱和手机立即绑定

脚本函数奇怪的运行结果

<%@ page import="java.util.*" contentType="text/html;charset=UTF-8" language="java"   %>
<html>
  <head>
    <title>title</title>
  </head>
  <body>
  <h1>九九乘法表</h1>
  <%!
      int n=0;
      String s="";
      String prtable(){
          n++;
          if (n==2){
              return "第二次运行程序";
          }
          for (int i=1;i<10;i++){
              for(int j=1;j<=i;j++){
                  s=s+i+"*"+j+"="+i*j+"&nbsp;&nbsp";
              }
              s+="<br/>\n";
          }
          return s;
      }
      void prtable2(JspWriter out)throws Exception {
          for (int i = 1; i < 10; i++) {
              for (int j = 1; j <= i; j++) {
                  out.println(+i + "*" + j + "=" + i * j + "&nbsp;&nbsp");
              }
              out.println("<br/>");
          }
          out.println("<hr>"+n);
      }
  %>
  <hr/>
      <%=prtable()%>
  <hr/>

  <%
      prtable2(out);
  %>
  </body>
</html>

http://img1.sycdn.imooc.com//599af42200017c7c06900379.jpg

是不是因为函数运行了两次?如果是,第一次是何时运行的?或者是其他的什么原因?

正在回答

2 回答

全局变量没刷新一次网页n加1,因为你刷新了一次所以是运行了第二次,你试试关闭了浏览器重新开就是第一次了


0 回复 有任何疑惑可以回复我~
#1

未来的开拓者 提问者

可是这真的是第一次运行。我用的是Intellij IDEA。写完代码点击运行,显示如上。并没有刷新过。
2017-08-22 回复 有任何疑惑可以回复我~
#2

慕粉2018078477

用别的浏览器试试
2017-08-23 回复 有任何疑惑可以回复我~
#3

慕粉2018078477

你用myeclipse吧,你那个可能程序有点问题
2017-08-23 回复 有任何疑惑可以回复我~

因为你的函数定义为String类,需要返回一个String类对象,当n==2时,return "第二次运行程序";即返回了一个String对象,函数结束运行。不执行下面的代码,故只打印输出字符串"第二次运行程序";当刷新第三次时,第一个函数prtable()的s即为两个九九乘法表,刷新第四次时,第一个函数prtable()的s即为三个九九乘法表;依次类推;

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JAVA遇见HTML——JSP篇
  • 参与学习       248277    人
  • 解答问题       3071    个

Java Web入门级教程JSP,带你轻松的学习JSP基础知识

进入课程

脚本函数奇怪的运行结果

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信