<%@ 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+"  "; } 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 + "  "); } out.println("<br/>"); } out.println("<hr>"+n); } %> <hr/> <%=prtable()%> <hr/> <% prtable2(out); %> </body> </html>
是不是因为函数运行了两次?如果是,第一次是何时运行的?或者是其他的什么原因?
全局变量没刷新一次网页n加1,因为你刷新了一次所以是运行了第二次,你试试关闭了浏览器重新开就是第一次了
因为你的函数定义为String类,需要返回一个String类对象,当n==2时,return "第二次运行程序";即返回了一个String对象,函数结束运行。不执行下面的代码,故只打印输出字符串"第二次运行程序";当刷新第三次时,第一个函数prtable()的s即为两个九九乘法表,刷新第四次时,第一个函数prtable()的s即为三个九九乘法表;依次类推;