在java的介绍中,我们常用的查找有两种
1.顺序查找:(案例演示)
2.二分查找:【二分法】
案例要求:
有一个数列:白眉鹰王,金毛狮王,紫衫龙王,青翼蝠王;从键盘中任意输入一个名称,判断数列中是否包含此名称【顺序查找】要求:如果找到了,就提示找到,并给出下标。
思路分析;
定义一个字符串数组 String[] arr = {"白眉鹰王", "金毛狮王", "紫衫龙王", "青翼蝠王"};
创建Scanner对象从键盘输入
判断输入的字符是否等于数组内的元素,使用equals
流程图如下:
文字描述
定义一个字符串数组 String[] arr = {"白眉鹰王", "金毛狮王", "紫衫龙王", "青翼蝠王"};
使用for循环,int类型i初值为0 ,判断是否小于arr数组的长度,为真从键盘输入name,判断name是佛定于arr数组内的元素为真则输出已经找到了,退出循环,为假则i自增回到循环,当for循环为假时结束循环。
增加了一个小技巧
定义一个索引int index = -1,当name等于arr数组内的任意一个元素时,把 i 赋值给index,
if判断index是否等于-1 为真则输出不符合任何一个元素。
代码如下
优化后
package 课堂练习;
import java.util.Scanner;
public class 练习30 {
public static void main(String[] args){
Scanner myScanner = new Scanner(System.in);
String[] arr = {"白眉鹰王", "金毛狮王", "紫衫龙王", "青翼蝠王"};
System.out.println("请输入倚天屠龙记里任意一个名称:");
String name = myScanner.next();
int index = -1;
for(int i = 0; i < arr.length; i++){
if(name.equals(arr[i])){
System.out.println("已经找到了!!" + arr[i]);
System.out.println("下标为:" + i);
index = i;
break;
}
}
if(index == -1){
System.out.println("没有找到!!");
}
}
}
代码结果展示