A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jekyll 中级黑马   /  2015-9-27 00:34  /  267 人查看  /  0 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. /*
  2. 需求:
  3.         定义一个int数组,键盘录入数组长度,和每一个元素数据。
  4.         录入完毕后,打印数组;
  5.         打印完毕后,键盘输入需要查找的数据,返回查找数据在数组中的索引值。

  6. 思路:
  7.         A:创建键盘输入对象,
  8.         B:录入数组长度
  9.         C:根据录入的长度,创建一个int数组arr
  10.         D:定义一个为数组元素赋值的方法 void init(int[] arr) {...}
  11.                 a: 创建键盘输入对象
  12.                 b:for循环遍历数组,挨个为每一个元素赋值
  13.         E:定义一个打印数组的方法 void print(int[] arr) {...}
  14.                 a:在一行打印出数组,格式[11, 22, 33...]
  15.         F:提示用户输入需要查找的数据
  16.         G:定义变量,接收键盘录入数据
  17.         H:定义一个从数组中查找元素第一次出现索引位置的方法 int getIndex(int[] arr, int value) {...}
  18.                 a: 遍历数组
  19.                 b:value挨个和arr[i]做比较,是否相等,
  20.                         * 相等,返回索引i,结束循环
  21.                 c:若都不相等,返回-1。
  22.         I:根据getIndex(..)的返回值,输出对应的结果。
  23. */

  24. import java.util.Scanner;
  25. class Day05_ArrayTest {
  26.         public static void main(String[] args) {
  27.                 Scanner sc = new Scanner(System.in);
  28.                 int[] arr;    //先声明一个数组,暂时不初始化,等待键盘录入长度,再初始化。

  29.                 //根据键盘录入的长度,new一个数组。
  30.                 System.out.print("请定义数组长度:");
  31.                 while (true) {
  32.                         int length = sc.nextInt();
  33.                         if (length > 0) {
  34.                                 arr = new int[length];
  35.                                 break;
  36.                         } else {
  37.                                 System.out.print("您的输入不合法,请重新输入数组长度:");
  38.                         }
  39.                 }
  40.                
  41.                 //调用为数组赋值的方法
  42.                 init(arr);

  43.                 //调用打印数组的方法
  44.                 print(arr);

  45.                 //while true, 让用户可以多次输入并查找数据
  46.                 while (true) {
  47.                         System.out.print("请输入您要查找的数据:");
  48.                         int value = sc.nextInt();

  49.                         //拜拜了,若不想再继续查找,自定义跳出循环的标记。
  50.                         if (value == 886) {       
  51.                                 System.out.println("谢谢您的使用,欢迎下次再来 :)");
  52.                                 System.out.println();
  53.                                 break;
  54.                         }

  55.                         //调用查找元素索引的方法
  56.                         int index = getIndex(arr, value);
  57.                         if (index == -1) {
  58.                                 System.out.println(":( 对不起! 没有你要查找的数据 :(");
  59.                         } else {
  60.                                 System.out.println(value + "在数组中第一次出现的索引是: " + index);
  61.                         }
  62.                         System.out.println();
  63.                 }
  64.         }


  65.         //为数组赋值
  66.         public static void init(int[] arr) {
  67.                 System.out.println("-----------------------");
  68.                 Scanner sc = new Scanner(System.in);
  69.                 for (int i = 0; i < arr.length; i++) {
  70.                         System.out.print("请录入数组的第" + (i+1) + "个元素: ");
  71.                         arr[i] = sc.nextInt();                        //从键盘录入为每一个数组元素赋初值
  72.                 }
  73.                 System.out.println("-----------------------");
  74.         }


  75.         //打印数组
  76.         public static void print(int[] arr) {
  77.                 System.out.print("您录入的数组信息为:[");
  78.                 for (int i = 0; i < arr.length; i++) {
  79.                         if (i == arr.length - 1) {
  80.                                 System.out.println(arr[i] + "]");
  81.                         } else {
  82.                                 System.out.print(arr[i] + ", ");
  83.                         }
  84.                 }
  85.                 System.out.println("-------------------------");
  86.         }


  87.         //从数组中查找value
  88.         public static int getIndex(int[] arr, int value) {
  89.                 for (int i = 0; i < arr.length; i++) {
  90.                         if (arr[i] == value) {
  91.                                 return i;
  92.                         }
  93.                 }
  94.                 return -1;                //因为方法有具体返回值类型,必须有return语句,如果没找到,返回-1
  95.         }
  96. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马