數組定義對於開始不知道長度的數組,可以用vector,還可能arraylist、hashtable、map、hashmap
簡單建立一個數組
<html>
<head>
<title>creating an array</title>
</head>
<body>
<h1>creating an array</h1>
<%
double accounts[];
accounts = new double[100];
accounts[3] = 119.63;
out.println("account 3 holds $" + accounts[3]);
%>
</body>
</html>
二維數組
<html>
<head>
<title>using multidimensional arrays</title>
</head>
<body>
<h1>using multidimensional arrays</h1>
<%
double accounts[][] = new double[2][100];
accounts[0][3] = 119.63;
accounts[1][3] = 194.07;
out.println("savings account 3 holds $" + accounts[0][3] + "<br>");
out.println("checking account 3 holds $" + accounts[1][3]);
%>
</body>
</html>
對數組中元素排序
<%!
void doubler(int a[])
{
for (int i = 0; i < a.length;i++) {
a[i] *= 2;
}
}
%>
<%
int array[] = {1, 2, 3, 4, 5};
out.println("before the call to doubler...<br>");
for (int i = 0; i < array.length;i++) {
out.println("array[" + i + "] = " + array[i] + "<br>");
}
doubler(array);
out.println("after the call to doubler...<br>");
for (int i = 0; i < array.length; i++) {
out.println("array[" + i + "] = " + array[i] + "<br>");
}
%>
遍曆數組
while(rs2.next())
{
count++;
}
string grade5name[]=new string[count];
float mark[]=new float[count];
while(rs2.next())
{
grade5name[i]=rs2.getstring("grade5name");
mark[i]=rs2.getfloat("mark");
i++;
}
自己看一下這段代碼,有兩個rs.next()的判斷迴圈遍曆。
第一個while(rs2.next()),迴圈之所以會結束,跳出,是因為rs已經遍曆完了,這個時候, rs裡面的指標是指向最後一條記錄的後面的,所以,在第二個while(rs2.next())的時候,rs2.next()肯定是false了,當然不會再執行第二個迴圈。因為第二個迴圈不可能會執行,所以,永遠都不會得到相應的資料的呀。如果你想要第二次遍曆,那必須在第二個while迴圈之前再查詢一次才可以。
再有,不知道你為什麼非要用數組,其實,用一個迴圈就夠了,不要用數組,用集合會好一些。
<%
list<string> gradenamelist = new arraylist<string>();
list<float> marklist = new arraylist<string>();
while(rs2.next())
{
gradenamelist.add(rs2.getstring("grade5name"));
marklist.add(rs2.getfloat("mark"));
}
for(int s=0;s < marklist.size();s++)
{
%>
<tr>
<td width="21"><input type="radio" name="mark" value="<%=marklist.get(s) %>" /></td>
<td width="909"><%=gradenamelist.get[s] %></td>
</tr>
<%
}
%>