【www.bbyears.com--C语言】
数组定义对于开始不知道长度的数组,可以用vector,还可能arraylist、hashtable、map、hashmap
简单创建一个数组
creating an array
creating an array
<%
double accounts[];
accounts = new double[100];
accounts[3] = 119.63;out.println("account 3 holds $" + accounts[3]);
%>
二维数组
using multidimensional arrays
using multidimensional arrays
<%
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] + "
");
out.println("checking account 3 holds $" + accounts[1][3]);
%>
对数组中元素排序
<%!
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...
");
for (int i = 0; i < array.length;i++) {
out.println("array[" + i + "] = " + array[i] + "
");
}doubler(array);
out.println("after the call to doubler...
");
for (int i = 0; i < array.length; i++) {
out.println("array[" + i + "] = " + array[i] + "
");
}
%>
遍历数组
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循环之前再查询一次才可以。
再有,不知道你为什么非要用数组,其实,用一个循环就够了,不要用数组,用集合会好一些。
<%
listgradenamelist = new arraylist ();
listmarklist = new arraylist ();
while(rs2.next())
{
gradenamelist.add(rs2.getstring("grade5name"));
marklist.add(rs2.getfloat("mark"));
}
for(int s=0;s < marklist.size();s++)
{
%>
<%=gradenamelist.get[s] %>
<%
}
%>