package lanqiao;
import java.util.Scanner;
public class search {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
int n=input.nextInt();
int[] str=new int[n];
for(int i=0;i<n;i++){
str[i]=input.nextInt();
}
int a=input.nextInt();
for(int i=0;i<n;i++){
if(str[i]==a){
System.out.println(i+1);
break;
} else
{
System.out.println(-1);
break;
}
}
}
}
这个得了90分,没有通过,下面的代码通过了,我换了种方法,但是思想还是没有改变,为什么下面的通过了?
import java.util.Scanner;
public class search {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
int n=input.nextInt();
int[] str=new int[n];
for(int i=0;i<n;i++){
str[i]=input.nextInt();
}
int a=input.nextInt();
int t=0;
for(int i=0;i<n;i++){
if(str[i]==a){
t=i+1;
break;
}
}
if(t != a){
System.out.println(t);
}else{
System.out.println(-1);
}
}
}
这个是通过的代码
你第一种每次都会进行if判断,不满足会进入else中,输出else里面的内容
是会进行判断,如果不满足就会入else,这运行没毛病,但是他查找不了两位数,如果查找58,数组中有58,可是输出是-1,但第二个就不会出现这种情况,第二和第一个为什么有这样的差异是我想问的