文章摘要
1、数组的声明和使用。
2、99乘法表
一、数组
- 1、数组:数组也是变量,是用来存储相同数据类型的一组变量。
声明数组:数据类型 数组名[] 、 数据类型[] 数组名,声明数组可以容纳的类型。
int index[];
String[] names;
- 2、数组的初始化。分配内存空间大小
index = new int[30];
names = new String[20];
- 3、赋值。初始化数组
index[0] = 1;
names[0] = "HelloWorld";
int[] ages = {45,44,33};//边声明、边初始化
int[] score = new int[]{99,59,80};//声明+初始化
- 4、使用
int sum = score[0]+score[1]+score[2];//数组第一个元素从0开始
System.out.println("总分数:"+sum);
关于数组,我们可以总结如下:
数组的长度是固定的,也是有边界的。
数组第一个元素从0开始,“length - 1”结束。数组越界是常见的编程错误。
- 5、应用实战:使用数组,求最大数,最小数,平均数
int maxScore=score[0];
int minScore = score[0];
int avg = 0;
for(int i=0;i<score.length;i++){
if(score[i]>maxScore){
maxScore = score[i];
}
if(score[0]<minScore){
minScore = score[i];
}
avg +=score[i];
}
System.out.println("最大数字:"+maxScore);
System.out.println("最小数字:"+minScore);
System.out.println("平均数字:"+avg/score.length);
二、多维数组
多维数组:数组的数组,即:数组的元素也是数组。
int[][] arrays = new int[][]{
{1,2,3,4,5},
{10,9,8,7,6}
};
int[][][] scores = {
{//小学各年级的成绩单
{//小学一年级一班
99,87,76,60
},
{//小学一年级二班
100,87,78,60
},
{//小学一年级三班
98,87,67,49
}
},
{//初中各年级的成绩单
{
}
},
{//高中各年级的成绩单
{
}
}
};
三、99乘法表
- 3.1、打印99乘法表
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(i+"X"+j+"="+(i*j));
System.out.print(" ");
}
System.out.println();
}
输出:
1X1=1
2X1=2 2X2=4
3X1=3 3X2=6 3X3=9
4X1=4 4X2=8 4X3=12 4X4=16
5X1=5 5X2=10 5X3=15 5X4=20 5X5=25
6X1=6 6X2=12 6X3=18 6X4=24 6X5=30 6X6=36
7X1=7 7X2=14 7X3=21 7X4=28 7X5=35 7X6=42 7X7=49
8X1=8 8X2=16 8X3=24 8X4=32 8X5=40 8X6=48 8X7=56 8X8=64
9X1=9 9X2=18 9X3=27 9X4=36 9X5=45 9X6=54 9X7=63 9X8=72 9X9=81
- 3.2、Continue的使用:
//将9X9乘法表中的偶数行不显示,即:第2行、第4行
for(int i=1;i<=9;i++){
if(i%2==0)continue;//如果行控制变量i可以被2整除,则不显示,继续下次循环
for(int j=1;j<=i;j++){
System.out.print(i+"X"+j+"="+(i*j));
System.out.print(" ");
}
System.out.println();
}
- 3.3、“35太难了”
break的使用:将大约35的乘法口诀不输出
//99乘法表中,结果大于35的乘法口诀不要输出
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
if(i*j>35){
break;
}
System.out.print(i+"X"+j+"="+(i*j));
System.out.print(" ");
}
System.out.println();
}
输出:
1X1=1
2X1=2 2X2=4
3X1=3 3X2=6 3X3=9
4X1=4 4X2=8 4X3=12 4X4=16
5X1=5 5X2=10 5X3=15 5X4=20 5X5=25
6X1=6 6X2=12 6X3=18 6X4=24 6X5=30
7X1=7 7X2=14 7X3=21 7X4=28 7X5=35
8X1=8 8X2=16 8X3=24 8X4=32
9X1=9 9X2=18 9X3=27
四、冒泡排序
冒泡排序:从最底部的元素开始比较,两个元素中的较小的冒到顶部,较大的沉到底部,重复执行,直到所有的元素都被排序。
int numbers[] = {98,102,45,29,85};
int temp = 0;
//冒泡排序1--沉底
for(int i=0;i<numbers.length-1;i++){
for(int j=0;j<numbers.length-1-i;j++){//每次排序决定[numbers.length-1-i]位置的数字
if(numbers[j]>numbers[j+1]){//升序、降序来自">"还是"<"
temp = numbers[j];
numbers[j]=numbers[j+1];
numbers[j+1]=temp;
}
}
}
//冒泡排序2-上浮
for(int i=0;i<numbers.length-1;i++){
for(int j=numbers.length-1;j>i;j--){//每次排序决定[i]位置的数字
if(numbers[j]>numbers[j-1]){//升序、降序来自"<"还是">"
temp = numbers[j];
numbers[j]=numbers[j-1];
numbers[j-1]=temp;
}
}
}
备注:
1、加入了二分法的双向冒泡排序:
http://blog.csdn.net/droyon/article/details/8785903
案例代码下载:代码下载:http://download.csdn.net/detail/hailushijie/9661631