import java.util.Scanner;
public class Sal {
public static void main (String args []){
Scanner s=new Scanner(System.in);
String area[]=new String [10];
int pincode[]=new int [10];
int search;
int chk=0;
int p=0;
System.out.println("Enter 10 areas");
for (int i=0;i<=9;i++)
area[i]=s.next();
System.out.println("Enter 10 pincodes");
for (int l=0;l<=9;l++)
pincode[l]=s.nextInt();
System.out.println("Enter Search");
search=s.nextInt();
for (int j=0;j<=9;j++){
if(search == pincode[j] ){
chk=1;
j=p;
break;
}
}
if(chk==1){
System.out.println("Search Found "+"Pincode : "+area[p] );
}else{
System.out.println("Search not Found");
}
}
}
我似乎正确地得到了程序的第一部分,即它告诉我是否找到了搜索。但是,在那之后无论我输入什么作为密码,我都会得到第一个输入区域作为搜索结果。假设我输入10个区域 - pincodes,比如说
q - 1
w - 2
e - 3
r - 4
t - 5
y - 6
u - 7
i - 8
o - 9
p - 0
如果我输入搜索为"4"
我得到了输出:
Search Found Pincode : q
答案 0 :(得分:3)
这一行错了:
j=p;
将其更改为p=j
:
if(search == pincode[j] ){
chk=1;
p = j; // you want to save index
break;
}
与您的问题无关,但将s.next()
更改为s.nextLine()
。
next()
将获取当前单词并转到同一行中的下一个单词,例如:
如果您的输入是这样的:
in put
是一个 字符串
和 在put 完整
输出数组将类似于此[in,put,is,a,string,and,the,in,put,complete]
但是nextLine()
将获得整行并转到下一行。
[in put,is a, string, and the, in put, complete,....]