1.二维数组;
1)二维数组的定义;
二维数组就是特殊的一维数组
int [][] arr1 = {{1,2,3},{4,5,6},{7,8,9}}
int [][] arr2 = new int [][]{{1,2,3}{4,5,6};
int [][] arr3 = new int [2][3];
在arr1和arr2的定义中,虽然我们没有给他定义行和列,但是通过{}也能让编译器知道行和列。
注意:二维数组在java中时可以忽略列的。
2)二维数组的遍历;
for循环进行遍历:
可以把二维数组的行看成一维数组的长度,把列看成一维数组行的长度。
for(int i = 0; i < arr1.length; i++) {
for(int j = 0; j < arr1[i].length; j++) {
System.out.print(arr1[i][j] + " ");
}
}
# 数组名.for数组类型名首字母(例: i) ,然后按enter键也会出现循环语句
例: for(int i = 0;i < score.length;i++) {
}
for each遍历数组:
for each在遍历数组的时候,我们要创建一个与数组类型相同的临时变量,数组会把他的每一个元素都复制给临时变量,然后进行输出。
语法格式:
for(数据类型变量:数组名) { System.out.print(变量); } |
public static void main(String[] args) {
int [] arr = {1,2,3,4,5};
for (int x : arr) {
System.out.println(x + " ");
}
}
1.根据三个学生的成绩单,输出各同学的平均成绩,并平均成绩大于等于80的评为优,其他的评为良。
package Mai3;
public class Demo13 {
public static void main(String[] args) {
double [][]score = {{89,92,85},{76,86,68},{58,71,79}};
double []ave = new double[3]; //保存每一位学生的平均成绩
for(int i = 0;i < score.length;i++) {
double sum = 0; //每个学生总分
for(int j = 0;j < score[i].length;j++) {
sum = sum + score[i][j];//计某个同学的总分
ave[i] = sum / 3.0;
}
}
for(int i = 0;i < ave.length;i++) {
System.out.println("第" + (i+1) + "个同学的平均成绩 = " + ave[i]);
if(ave[i] >= 80) {
System.out.println("优");
}
else {
System.out.println("良");
}
}
}
}
运行结果为:
第1个同学的平均成绩 = 88.66666666666667
优
第2个同学的平均成绩 = 76.66666666666667
良
第3个同学的平均成绩 = 69.33333333333333
良
2.定义一个数组,存储2,3,5,6,9,12,15,30,7遍历数组得到每一个元素, 如果是奇数,则当前的数字扩大两倍;如果是偶数,则当前的数字变成他的1/2, 并输出奇偶数个数。
package Mai3;
public class Demo15 {
public static void main(String[] args) {
int [] arr = {2,3,5,6,9,12,15,30,7};
int count1 = 0,count2 = 0;
for (int i = 0; i < arr.length; i++) { //对每一个元素进行判断
if(arr[i] % 2 == 0) {
arr[i] = arr[i] / 2;//偶数变成1/2;
count1++;
}
else {
arr[i] = arr[i] * 2; //奇数扩大两倍;
count2++;
}
}
for (int i = 0; i < arr.length; i++) { //遍历数组;
System.out.print(arr[i] + " ");
}
System.out.println(" ");
System.out.println("奇数个数为:" + count1 + ";" + "偶数个数为:" + count2);
}
}
运行结果为:
1 6 10 3 18 6 30 15 14
奇数个数为:4;偶数个数为:5