腳本函數奇怪的運行結果
<%@?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>
是不是因為函數運行了兩次?如果是,第一次是何時運行的?或者是其他的什么原因?
2017-08-22
全局變量沒刷新一次網頁n加1,因為你刷新了一次所以是運行了第二次,你試試關閉了瀏覽器重新開就是第一次了
2017-12-04
因為你的函數定義為String類,需要返回一個String類對象,當n==2時,return "第二次運行程序";即返回了一個String對象,函數結束運行。不執行下面的代碼,故只打印輸出字符串"第二次運行程序";當刷新第三次時,第一個函數prtable()的s即為兩個九九乘法表,刷新第四次時,第一個函數prtable()的s即為三個九九乘法表;依次類推;