/*
需求:
定义一个int数组,键盘录入数组长度,和每一个元素数据。
录入完毕后,打印数组;
打印完毕后,键盘输入需要查找的数据,返回查找数据在数组中的索引值。
思路:
A:创建键盘输入对象,
B:录入数组长度
C:根据录入的长度,创建一个int数组arr
D:定义一个为数组元素赋值的方法 void int(int[] arr) {...}
a: 创建键盘输入对象
b:for循环遍历数组,挨个为每一个元素赋值
E:定义一个打印数组的方法 void print(int[] arr) {...}
a:在一行打印出数组,格式[11, 22, 33...]
F:提示用户输入需要查找的数据
G:定义变量,接收键盘录入数据
H:定义一个从数组中查找元素第一次出现索引位置的方法 int getIndex(int[] arr, int value) {...}
a: 遍历数组
b:value挨个和arr[i]做比较,是否相等,
* 相等,返回索引i,结束循环
c:若都不相等,返回-1。
I:根据getIndex(..)的返回值,输出对应的结果。
*/
import java.util.Scanner;
class Day05_ArrayTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] arr; //先声明一个数组,暂时不初始化,等待键盘录入长度,再初始化。
//根据键盘录入的长度,new一个数组。
System.out.print("请定义数组长度:");
while (true) {
int length = sc.nextInt();
if (length > 0) {
arr = new int[length];
break;
} else {
System.out.print("您的输入不合法,请重新输入数组长度:");
}
}
//调用为数组赋值的方法
init(arr);
//调用打印数组的方法
print(arr);
//while true, 让用户可以多次输入并查找数据
while (true) {
System.out.print("请输入您要查找的数据:");
int value = sc.nextInt();
//拜拜了,若不想再继续查找,自定义跳出循环的标记。
if (value == 886) {
System.out.println("谢谢您的使用,欢迎下次再来 :)");
System.out.println();
break;
}
//调用查找元素索引的方法
int index = getIndex(arr, value);
if (index == -1) {
System.out.println(":( 对不起! 没有你要查找的数据 :(");
} else {
System.out.println(value + "在数组中第一次出现的索引是: " + index);
}
System.out.println();
}
}
//为数组赋值
public static void init(int[] arr) {
System.out.println("-----------------------");
Scanner sc = new Scanner(System.in);
for (int i = 0; i < arr.length; i++) {
System.out.print("请录入数组的第" + (i+1) + "个元素: ");
arr[i] = sc.nextInt(); //从键盘录入为每一个数组元素赋初值
}
System.out.println("-----------------------");
}
//打印数组
public static void print(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] + ", ");
}
}
System.out.println("-------------------------");
}
//从数组中查找value
public static int getIndex(int[] arr, int value) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == value) {
return i;
}
}
return -1; //因为方法有具体返回值类型,必须有return语句,如果没找到,返回-1
}
}
|
|