需求:使用Random生成指定范围的随机数输出并进行倒序输出!
public static void main(String[] args) {
Random ran = new Random();
int[] a = new int[10];// 初始化a数组,声明长度为10
int[] b = new int[a.length];// 初始化b数组,长度等于a数组
// 遍历生成a数组的元素
for (int i = 0; i < 10; i++) {
a[i] = ran.nextInt(10);// 生成[0-10)的数,不含10
System.out.println(a[i]);
}
// 从a数组尾部开始取元素,并赋值给b数组
for (int i = 0; i < a.length; i++) {
b[i] = a[a.length - i - 1];
System.out.println("倒序输出为:" + b[i]);
}
}
输出结果:
6
8
5
4
8
6
1
7
4
4
倒序输出为:4
倒序输出为:4
倒序输出为:7
倒序输出为:1
倒序输出为:6
倒序输出为:8
倒序输出为:4
倒序输出为:5
倒序输出为:8
倒序输出为:6
a[a.length - i -1];代表当前 a 数组的长度减去循环体 i 的数,然后再减去1,相当于从 a 数组的尾部开始取,从而实现倒序的效果。
- a.length:代表a数组的长度10;
- a.length - i :代表a数组的长度10减去for循环的i,i每次自增,减去i就相当于从10开始倒数到1;
- a.length - i - 1:由于数组的索引是从0开始的,所以得减去1,即a数组长度为10的时候,对应的索引是0~9;
详细演示:具体每一步的演示:
public static void main(String[] args) {
Random ran = new Random();
int[] a = new int[10];// 初始化a数组,声明长度为10
int[] b = new int[a.length];// 初始化b数组,长度等于a数组
// 遍历生成a数组的元素
for (int i = 0; i < 10; i++) {
a[i] = ran.nextInt(10);// 生成[0-10)的数,不含10
System.out.println(a[i]);
}
// 从a数组尾部开始取元素,并赋值给b数组
for (int i = 0; i < a.length; i++) {
b[i] = a[a.length - i - 1];
int len = a.length;
int len2 = a.length - i;
int index = a.length - i - 1;
System.out.println("a的长度:" + len);
System.out.println("a的长度2:" + len2);
System.out.println("索引:" + index);
System.out.println("倒序输出为:" + b[i]);
}
}
输出结果:
4
5
1
3
6
3
1
6
5
0
a的长度:10
a的长度2:10
索引:9
倒序输出为:0
a的长度:10
a的长度2:9
索引:8
倒序输出为:5
a的长度:10
a的长度2:8
索引:7
倒序输出为:6
a的长度:10
a的长度2:7
索引:6
倒序输出为:1
a的长度:10
a的长度2:6
索引:5
倒序输出为:3
a的长度:10
a的长度2:5
索引:4
倒序输出为:6
a的长度:10
a的长度2:4
索引:3
倒序输出为:3
a的长度:10
a的长度2:3
索引:2
倒序输出为:1
a的长度:10
a的长度2:2
索引:1
倒序输出为:5
a的长度:10
a的长度2:1
索引:0
倒序输出为:4