一、定义打印数组元素方法,按照给定的格式打印[11, 33, 44, 22, 55]
题目分析:
通过观察发现,本题目要实现按照指定格式,打印数组元素操作
1.通过循环,我们可以完成数组中元素的获取,数组名[索引]
2.观察发现,每个数组元素之间加入了一个逗号”,”进行分隔;并且,整个数组的前后有一对中括号”[]”包裹数组所有元素。
解题步骤:
1.使用输出语句完成打印 左边的中括号”[”
2.使用循环,输出数组元素值。输出元素值分为两种情况,如下:
最后一个数组元素,加上一个右边的中括号”]”
非最后一个数组元素,加上一个逗号”,”
代码如下:
//打印数组
public static void printArray(int[] arr) {
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
System.out.println(arr[i]+"]");
}else {
System.out.print(arr[i]+",
");
}
}
}
二、数组元素逆序存储
题目分析:
通过观察发现,本题目要实现原数组元素倒序存放操作。即原数组存储元素为{11,22,33,44},逆序后为原数组存储元素变为{44,33,22,11}。
1.通过图解发现,想完成数组元素逆序,其实就是把数组中索引为start与end的元素进行互换。
2.每次互换后,start索引位置后移,end索引位置前移,再进行互换
3.直到start位置超越了end位置,互换结束,此时,数组元素逆序完成。
解题步骤:
1.定义两个索引变量start值为0,变量end值为数组长度减去1(即数组最后一个元素索引)
2.使用循环,完成数组索引start位置元素与end位置元素值互换。
3.在循环换过程中,每次互换结束后,start位置后移1,end位置前移1
4.在循环换过程中,最先判断start位置是否超越了end位置,若已超越,则跳出循环
代码如下:
//数组元素逆序
public static void receive(int[] arr){
for (int start = 0, end = arr.length-1; start < end; start++,end--) {
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
}
}
三、数组元素查找索引位
题目分析:
通过观察发现,本题目要实现查找指定数值第一次在数组中存储的位置(索引),返回该位置(索引)。
1.我们可以通过遍历数组,得到每个数组元素的值
2.在遍历数组过程中,使用当前数组元素值与要查找的数值进行对比
a)数值相等,返回当前数组元素值的索引
b) 整个循环结束后,比对结果数值没有相等的情况,说明该数组中没有存储要查找的数值,此时,返回一个索引值-1,来表示没有查询到对应的位置。(使用 -1来表示没有查询到,是因为数组的索引没有负数)
解题步骤:
1.使用for循环,遍历数组,得到每个数组元素值
2.在每次循环中,使用if条件语句进行当前数组元素值与要查找的数值进行对比,若比较结果相等,直接返回当前数组元素的索引值
3.若整个循环结束后,比对结果数值没有相等的情况,说明该数组中没有存储要查找的数值,此时,返回一个索引值-1
public static int getArrayIndex(int[] arr, int number) {
//定义index变量,记录要返回的索引的位置
int index = -1;
//把数组中的元素依次与指定的数值 进行比较
for (int i = 0; i < arr.length; i++) {
if (arr[i] == number) {
//找到了
index = i;
break;
}
}
return index;
}
网友评论