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);
}
}