动态初始化数组,实现数组元素反转
动态初始化数组,实现数组元素反转
实现动态初始数组(满足从键盘输入)
首先确定要输入的数组个数sum,用于动态初始化数组。再通过for循环将键盘输入的数字添加进数组arr
1 package test.array; 2 3 import java.util.Arrays; 4 import java.util.Scanner; 5 6 public class SetArray { 7 public static int[] arraySet() { //将从键盘输入的数字放进一个数组 8 Scanner sc = new Scanner(System.in); 9 System.out.println("请输入数组元素的个数:"); 10 int sum = sc.nextInt(); 11 int[] arr = new int[sum]; 12 for (int i = 0; i < sum; i++) { 13 System.out.print("请输入第" + (i + 1) + "个数字:"); 14 arr[i] = sc.nextInt(); 15 } 16 System.out.println("输入的数组为:" + Arrays.toString(arr)); 17 return arr; 18 } 19 }
调用初始化数组方法,并实现数组元素反转
1.元素反转其实就是数组内对称索引的值进行交换。
2.通常遍历数组用一个索引,表示对称位置就需要两个索引即[first]与[last]。
3.如何交换两个变亮的值?两个装满水的水杯调换水,必然要借用第三个杯子,那交换两个变亮的值就需要第三个变量用来“倒手”。
4.什么时候停止交换?当[first]>[last]时,即对称交换结束。
1 package test.array; 2 3 import java.util.Arrays; 4 5 import static test.array.PrintArray.printArr; 6 import static test.array.SetArray.arraySet; 7 8 public class ArrayReverse { 9 public static void main(String[] args) { 10 int[] arr = arraySet(); 11 for (int first = 0, last = arr.length - 1; first < last; first++, last--) { 12 int temp; 13 temp = arr[first]; 14 arr[first] = arr[last]; 15 arr[last] = temp; 16 } 17 System.out.println("数组元素反转后为:" + Arrays.toString(arr)); 18 } 19 }
for(初始化语句;条件判断;步进表达式){
循环体
}
确定初始化语句:即两个索引
确定条件判断:当 [first]>[last],即 first < last
确定步进表达式:first++,last--