<%@ 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即为三个九九乘法表;依次类推;