我是Java新手。
这是我为从数组中搜索数字(提示值)而编写的代码。
它找不到匹配号码,但是当我将if(values[i]==number[i])
更改为if(values[i]==number[1])
public static void main(String args[]){
int[] number = {1, 2, 3, 4, 5, 6, 7, 8, 9};
//Convert string to int
int[] values = new int[args.length];
for (int i = 0; i < args.length; i++) {
values[i] = Integer.parseInt(args[i]);
}
for(int i=0; i<values.length; i++){
for(int j=0; j<number.length; j++){
if(values[i]==number[i]){
//if(values.equals(number[1])){
System.out.println("Number is found");
}else{
System.out.println("Number is not found");
}
}
}
}
答案 0 :(得分:2)
您需要更改
if(values[i]==number[i])
到
if(values[i]==number[j])
此外,我会使用一个布尔值,这样你就不会在循环的每次迭代中输出一行,而只是在args中每个值的分析结束时。
最终会像:
boolean found;
for(int i=0; i<values.length; i++){
found = false;
for(int j=0; j<number.length; j++){
if(values[i]==number[j]){
found = true
}
}
if(found){
System.out.println("Number is found");
} else {
System.out.println("Number is not found");
}
}
答案 1 :(得分:1)
由于您在数组value[i]
中搜索值number
。您正在使用number
扫描数组j
。试试这个:
public static void main(String []args){
int[] number = {1, 2, 3, 4, 5};
//Convert string to int
int[] values = new int[args.length];
for (int i = 0; i < args.length; i++) {
values[i] = Integer.parseInt(args[i]);
}
for(int i=0; i<values.length; i++){
boolean flag=false;
for(int j=0; j<number.length; j++){
if(values[i]==number[j]){
System.out.println("Number is found");
flag=true;
break; // Since we found number hence move out from inner loop
}
}
if(!flag)
System.out.println("Number is not found");
}
}