#java #arrays #return
#java #массивы #Возврат
Вопрос:
Я передаю целочисленный массив методу и ищу КЛЮЧ, но он возвращает noo, даже если ключ присутствует
class ArraySearch
{
public static void main(String[] args)
{
int[] arr={1,2,4,4,5};
int k=5;
System.out.println(findArray(arr,k));
}
public static String findArray( int arr[],int key)
{
for(int i=0;i<arr.length;i )
{
//System.out.println(arr[i]);
if(arr[i]==key)
return "YESS";
else
return "NOOO";//only this part is returned even if key id found
}
return "hoohah";
}
}
Комментарии:
1. Это должно сработать, если вы ищете первый ключ (в данном случае 1).
Ответ №1:
Внимательно прочитайте свой код. Вы входите в цикл, затем проверяете для первого элемента (i = 0), равен ли он ключу. Если нет ( else
), вы возвращаетесь немедленно, без поиска в остальной части массива.
Для поиска вы должны выполнить поиск по всему массиву.
for(int i=0;i<arr.length;i )
{
if(arr[i]==key)
return "YESS";
}
// if we get here we searched the entire array
return "NOOO";
Ответ №2:
public static String findArray( int arr[],int key)
{
String status = "no";
for(int i=0;i<arr.length;i )
{
//System.out.println(arr[i]);
if(arr[i]==key){
status = "YESS";
}
}
return status;
}