05查找数组指定元素的两种处理思路

查找数组指定元素的两种处理思路

一、准备工作

public class Test {
    public static void main(String[] args) {
        //查找元素但找不到元素时的两种方式,以数组为例
        int[] a={1,88,23,9,7,43};
        boolean flag=false;//flag为定义的哨兵字符
        System.out.println("输出a数组如下");
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i]+"\t");
        }
        System.out.println();
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入你要在a数组里面查找的元素");
        int number=scanner.nextInt();
    }
}

二、设立一个哨兵字符

思路:定义布尔类型的哨兵字符flag,默认为false

​ 如果找到了使flag=true,就打印找到的下标,并跳出当前循环,因为flag=true就不会执行后面的if语句了

​ 如果未找到,则啥都不做,如果结束for循环时也没找到,那么将会进入后面的if语句,打印信息-1(即找不到所要查找的元素)

 //第一种即用哨兵字符
 for (int i = 0; i < a.length; i++) {
    if(number==a[i]){
       flag=true;
       System.out.println(i);
       break;
    }
 }
 if(flag==false) {
    System.out.println(-1);
 }

三、遍历到最后一个元素时加判断

思路:遍历数组(将数组一个个判断后)时,若找到了相应的值,就打印找到的下标并跳出当前循环,如果遍历到最后一个元素也没有跳出当前循环,那么就判断进入if语句,打印输出-1

//第二种 在循环的时候判断
for (int i = 0; i < a.length; i++) {
    if(number==a[i]){
        System.out.println(i);
        break;
    }
    if(i==a.length-1){
        System.out.println(-1);
    }
 }
posted @ 2020-11-23 16:39  SSS翱翔万里  阅读(337)  评论(0编辑  收藏  举报