我是一个java菜鸟。发现自己遇到的问题都很白痴的。
数组问题
1 java数组的声明方式:
int [] array;
int array[];//这个和c语言的一样,喜欢用这种表示方法
2 java数组的内存分配问题
java数组在声明时不能指定数组的长度。
array=new int [9];//类型为int
3长度与下脚标
长度为9,下脚标为0-8,在编写代码时对于数组长度的上下限写错,出现错误:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException
4java多维数组的也别之处
多维数组的各位大小可以逐维的创建,例如:
float array [][]=new float [4][];
array[0]=new float [1]; //可以使用array[0].length第二维的第一行的大小
array[1]=new float [3];
5对于数组的处理
终端的输入对数组的初始化
System.out.println("请输入记录数据的总条数!");
Scanner input=new Scanner (System.in );
int num=input.nextInt();
String list[][];
list =new String [num][5];
for(int j=0;j<5;j++)
{
for(int n=0;n<num;n++)
{
switch(j)
{
case 0:
System.out.printf("请输入第%d条记录的订单号",n+1);
break;
case 1:
System.out.printf("请输入第%d条记录的客户名",n+1);
break;
case 2:
System.out.printf("请输入第%d条记录的地址",n+1);
break;
case 3:
System.out.printf("请输入第%d条记录的预订物品",n+1);
break;
case 4:
System.out.printf("请输入第%d条记录的消费价格",n+1);
break;
}
Scanner input1=new Scanner (System.in );
String need=input1.nextLine();
list[n][j]=need;
}
}
但是在java里面提供了一个foreach函数使其方便的对数组进行操作
//< 对输入的读取,采用foreach
System.out.println("读出数据:");
// 因为是二维的数组,所以第一层循环应该是一个一维的数组
for(String[] row :list)
{
int i=0;
//第二层循环是一维数组的元素所以直接是element而不是String[]element
for(String element:row)
{
System.out.println(element +"\t");
if(++i==(row.length)) System.out.println();//换行
}
}
执行结果如图:
在读入数据时仍然使用复杂的原始for语句,应该也可以在改成foreach的用法。正在调试错误中。